Free hosting is generally
- by placing ads on "customer" sites
- by requiring you to join and contribute to a forum with ads (post to host)
- good will from the owner (usually doesn't last for long though)
- subsidised by paying customers

Many free hosts don't make enough to stay up for long and simply vanish overnight when their reseller account is terminated though non-payment
Personally I don't like the idea of the post to host as you are required to join a forum and contribute to it and be exposed to the host's ads. Many of these seem to imply (but don't state outright!) that you have to click the ads (which of course would be click fraud) to keep the site running.
My personal opinion is that given the low cost of hosting these days (you can get a reasonable web hosting account per month for less than a pint of beer / packet of smokes / gallon of petrol), then why spoil your web site with ads or why spend your time contributing to a forum full of ads that's been setup just to create revenue for your host when you could be on a forum of your choice (or even doing something better) ?