Any model of business needs to earn money, so there is no 100% free host in the world. Sometimes they make you place their ads on your website, so more customers come and some of them will probably choose paid packages.

Sometimes, you will get a really limited number of features with a free host and the main idea is to make you upgrade to the full version.

Also, you don't get support or any uptime guarantees. No money - no service.

Paid hosting is as simple as possible. You pay for what you use and choose an appropriate package. If you have a simple website, you would need a shared package. If your business relies on your website, then a dedicated server is a better solution.

I think free hosting works for beginners who would like to see what it is and what to do next.