They have different price because they have different users and buyers and it's open market any one can set and buy from the exchange in the price they want and no one can force and teach you when the price you want to buy it . It's always depend on the market and the liquidity of that exchange ..
True.
In theory, in efficient markets, we won't have a huge spread between exchanges because of
arbitrage
However, there are cases when the flows of funds are disrupted because of the regulation (crypto ban) and stuff. And it will lead to more risk (or more difficulties) of doing arbitrage, which resulted in a significant spread between some exchanges.