Bots pay rent.
Each pool has one manager seat, sold in a running auction. Whoever holds it pays rent to the pool's liquidity providers every slot (a slot is one tick of the Solana clock, about 0.22 seconds), sets the swap fee (up to 3%), collects it, and trades free. Add liquidity to collect the rent, bid for the seat, or just swap.
Reading pools...