Yes, you can find free hosting that doesn’t require the placement of ads on your pages. That doesn’t mean the company isn’t there to make a profit! The free account will give you only a small amount of bandwidth and space. What the hosting company does is give you free hosting while you’re starting your website/business and/or your needs are low.
They figure (bet) that you’ll go for their paid version (most free hosts have paid plans too), as soon as your website will outgrow its account in terms of bandwidth and/or space.
Some free hosts allow only the use of subdomains or directories, which means that your website’s URL will look something like this: yourwebsite.yourhost.com or http://www.yourhost.com/yourwebsite. That means that if you move your website you’ll lose all those hard earned links that point at it, people will send you emails that you’ll never read etc. You are stuck with that host!
It happened and it still does, that some hosts start their business with a great “free hosting” offer. Their name soon gets published all over the Internet. After a while (usually a year or more) the company stops offering free hosting. Some of their “free” clients will agree to become paying customers.