With an exchange, you can have a centralised database of how much is in each person's account.
So for internal transfers, you can just update the good old relational database and dodge the fees.
For transfers between exchanges, they can settle the net balance daily (or have some thresholds etc) to minimise any actual on-ledger transfers.
Of course all this makes the decentralized aspect of the currency pointless, but most people don't actually understand or care.