Hidden text is, well…. hidden
There are many legitimate reasons that there would be “hidden” text on a webpage. For instance there are several on this page alone, within the drop down menu. They are “hidden” from your view until you hover over them and they are then presented in a natural way for you. This is not a bad thing and it actually imrproves the user’s experience by decluttering the menu.
So if that hidden text is ok… what is bad?
That is not even the worst, because at least color on color text is ON the page, you in theory COULD see that if you viewed the source quickly. The WORST is when people use css to put text 5000 pixels off the page and think that is ok. So basically they have a beautiful website with 0 spam on it to the average users eyes, but they put a section of the website with absolute position to a point where you couldn’t see it unless you are running a billboard size resolution. These are the worst offenders in my book, because its not even on the page, and you are really “fooling” the visitor.
Why do people do it?
Because they think they won’t get caught with clever CSS, and a lot of times they use Cloaking to hide the fact from googlebot. You will notice a pattern here, when blackhat is involved, cloaking for googlebot is pretty much a prerequsite. So you are breaking all the rules but then trying to hide it from Google. It’s dumb.