The answer is that uniswap is a set of Smart Contract running on the Ethereum platform and thus requires gas in order to execute any functions.
Meaning that when you swap token A for token B or token C it is more or less the same function that is being called in order to perform the necessary logic of matching buyers and sellers.
This is only an issue (such as a $50 fee to perform a $10 trade) when gas prices are high or the value of Ethereum is high (both of which are true right now)
This results in a lot of people lowering the gas price they are willing to pay in order to make the transaction cost affordable.
As well as others raising the gas price to make their transactions execute efficiently or quickly.
As a result of these circumstances we end up with a lot of cancelled transactions and a huge pool of unseen or unconfirmed transactions that are waiting to be propogated throughout the nodes within the ethereum network by the miners.
Low gas price transactions have a high cancellation rate and high latency which results in miners adding old or outdated transactions to blocks that could result in double spends if verified by a node in one block and unseen/unconfirmed in another block from a different nodes transaction history.
With all of that being said. Miners dont get paid if they fill a block with nothing but unconfirmed transactions from two weeks ago that no longer have the sufficient funds to carry out the transaction (or it could be a double spend) most people speed up the transaction or re send it with higher gas prices so it executes in a timely manner.
Overall the answer is that the ethereum network is congested and in order to maintain security they do not want more transactions they want to try to decrease the workload one way of doing that is raising the price to use the network and only servicing those transactions that are willing to pay that price.
Its a security counter measure as well as a way to mitigate a high demand in network power