Why does Bitcoin need transaction fees prior to hitting its maximum coin limit?
One reason behind a transactions fees is to make spam attacks expensive.
Without fees, a malicious party could create a lot of no-fee transactions for a DoS attack on blockspace. And without fees a miner wouldn't be incentivised to include the highest fee transactions in a block. He could attack the network by mining empty blocks or including spam transactions. (e.g. transactions with clearly and solely exist to bloat the UTXO-set or to fill up blocks).

And correct - with a high enough transaction fee some people in e.g. third world country's can't pay for the transaction. However enabling users to select a transaction fee is necessary. A user that doesn't need fast confirmations can pay a lower fee than a user with a need for an instant confirmation. Thus a fee-market can develop. 

This might be an interesting read regarding this topic:
The Fee Market Explained by Jimmy Song