No, not all hacker sell their work. And no, hackers usually have actual jobs, most of the time as a programmer. Or do you honestly think that a bunch of unemployed nobodies could break a heavily locked system all by themselves? Not a chance. These guys all have jobs. Well-paid jobs too. Now, the ones you call "casual hackers", the ones that give their work for free, they have a higher chance of being unemployed. And yes, selling a hack instead of sharing it as open source postpone the entire scene from moving forward. The fact is, if no one in the world shared their code whatsoever, we would probably still be where we were in the 80s or 90s, the guys who're behind flash cards like GW, Sky 3DS etc wouldn't have learned how to do it in the first place. But thanks to all the people that share their work, the IT industry, and society as a whole, have managed to come a very long way.
And no, all this is not the same as saying that the mechanic who fixed my car is greedy. He's not exactly sitting on a secret. He learned to fix his car via sharing. Someone taught him how to fix the car. There are thousands of manuals available, both online and in libraries, all for free, on how to fix a car. But there's not a single manual on how to hack the 3DS, because greedy hackers want to have it all to themselves. Asking a mechanic to fix my car would be more the same as to ask someone to flash my 3DS in exchange for money.