That's mostly because with a Free Hosting account you're sharing a server with a LOT of other accounts (thousands), many of which are also running CMS (like WordPress, Joomla or Drupal) or forum scripts, all of which are kind of heavy in terms of database requests and memory space requirements.
When you're really lucky, you'll hit the server when it's more or less idle, and you get to see what the server can do with a full processor core when the 64MB memory space restriction and the raw network throughput to/from the database server are the only constraints on performance (hint: it's not a water-cooled overclocked desktop gaming machine, but it's pretty quick).
At other times, your request, or parts of it, is going to have to sit in a queue for a while waiting for other people's requests to be served first. The biggest problem with a single heavy page request is going to be waiting for database queries. But most "modern" web pages consist of many HTTP requests, one for the main page and several more for things like images, CSS files, JavaScript and AJAX/JSON data sources. If any of those are dynamically created (CSS created from config files; watermarked or thumbnail images created on-the-fly) you run into the same "might have to wait" conditions. There are times when you have to wait for static files as well, simply due to traffic at the server.
It boils down to this: Free Hosting accounts are suitable for hobby/vanity sites and not much else. Server resources may be a lot cheaper these days than they've been in the past, but they're not actually free yet, so if the hosting provider isn't making money from you directly (like with compulsory ads), there is a limit to what can be provided on a per-account basis while maintaining anything like a sane business model (potential upgrades to paid services and/or domain registration fees, etc.). For some sites, the down side of being on a heavily-used and lightly-provisioned¹ server are worth the compromise because, well, it's free, right? But if you're trying to run a business from the site, whether that site is a direct source of revenue or a sort of online resume/CV/portfolio, you really do need something that has a higher likelihood of fast response. You can only get so far by optimizing your site (installing enabling sane caching plug-ins, combining all CSS/JS into one or two static files each, ensuring that image thumbnails are created as static files, using CSS sprites rather than individual background images, eliminating external requests for fonts/analytics, etc.). The rest comes from making sure that you have enough server resources available to you often enough to make the page consistently fast, and that would mean stepping up to one of the paid plans (Illuminated, Premium or VPS).
________________________
¹ That's "lightly-provisioned" relative to the number of accounts; the servers themselves are pretty heavy-duty, complex clusters of computers.