I recently pondered this question..
There have been many times where I have seen hackathons that require developers to pay to join. As much as $50.
I understood that organizing a hackathon is not easy. It requires a lot of logistics, and not to forget the very important element - FOOD.
But many of the hackathons are sponsored by big companies such as Google/Amazon/Blackberry. So the costs are covered.
Then why still ask for $$?
PS: I understood some community hackathons have no sponsors, and it is perfectly fine that developers chip in money to buy a couple of pizzas.