My question is why is the rate higher on one exchange than on another?
Because different exchanges have different users and different capital from their users who are buyers and sellers. Those users will have different buying and selling orders and order sizes. Price change on each exchange will be decided by trading volume, buying and selling walls and you will not see all the same across many exchanges.
If you notice, Coinmarketcap and Coingecko will have their baskets of some exchanges and use their formulas to calculate average trading price of Bitcoin and other cryptocurrencies.
How are prices calculated on CoinmarketcapCoingecko's Price methodology