Exchanges provide the infrastructure for trades to happen (i.e. they maintain order books, match market orders against these, ensure that settlement will eventually happen etc.), but do not take on financial positions themselves.
The "exchange rate" is only determined by the order book, i.e. ultimately by supply and demand.
So if an exchange makes money, it needs to charge at least some of its participants for these services. That can happen through transparent fees, or through less obvious mechanisms (like making retail trades free, and charging an exclusive market maker for the privilege of that exclusivity).
if that were true then all exchange rates would be uniform across all providers
Long-standing price differences are usually reflective of market inefficiencies that can't easily be arbitraged away, such as difficulties funding a given exchange account, insufficient volume to make it worth trading there, or many others.
If you are not a small retail and want to trade crypto, you usually need to use futures - which are associated with fees - because of liquidity and tighter spreads.