Free hosting is good for non-profit sites, but there are a few risks involved, when its free. You are risking whole of the data that you are hosting there, which can get deleted anytime, without any backups. Also, most of the free hosts occupy some space in your web page with their ads.
On the other hand, paid hosting is better except that you have to shell out some money to host your website. They have a lot of specifications and you get your site backups and have no risk of losing your hosted data, and have full control on your web page.
Paid hosts charge for their more stable and faster site hosting, so you should not always think about saving a few dollars for so many advantages you are getting with the paid hosting, which is pretty cheap these days, starting from $1 a month.