If you wanted to run a YouTube competitor you would likely require better compression, which would take even longer. Now think about it running in the browser, which likely slows it down even more.
You upload a 10 minute clip and then your browser eats 100% of the CPU for the next hour.
And all of that is just for one quality setting.
I saw no problems with the video quality if I used -profile:v high -preset:v slow and set the output bitrate equal to the input's average bitrate. With those settings, I was able to reencode at about 130 fps - handy when the raw footage was 9+ hours at 25 fps. Yes, that's "slow" on the GPU. :)
When it comes to video hosting it's largely about bandwidth. Imagine you had a video that got 1 million views. 110 MB vs 100 MB file size. That's 110 TB vs 100 TB bandwidth - a difference of 10 TB. At a cent per GB that's $100 difference. Now imagine a video with 10 million views or 100 million views.
And the real difference in file size is likely to be larger.
Those kinds of fees would only happen if you were a tiny site and using an overpriced option like AWS.
It may be trivial for Youtube or Netflix, certainly not from a consumer's perspective.