Not strictly true.
ATProto allows relays to be optional—appviews could subscribe directly to PDSs.
But it reduces connections, which allows a relay in ATProto to run a fraction of the cost _per user_, even where the aggregate cost is higher (I think one estimate from a while back is that it is on the order of millions of tens of millions of BlueSky users for about the cost of Hachyderm).
AP is also, as implemented rather than as designed necessarily, _hellishly_ expensive per user compared to pretty much every major systems protocol.