I suspect a few factors.
* Egress pricing margins ensure lock-in which makes it hard to builds competitors to “commodity” services (eg you can’t spin up your own price-competitive S3 within AWS). Lack of competition means less innovation and more expensive pricing.
* While compute costs don’t necessarily come down, the CPUs get more powerful. At scale, this should be the same as prices coming down. However, it’s not exact and cloud provides pocket this difference as profit / R&D investment.
* SRE costs are a huge chunk of own infra (managing servers at scale). If you’re small, this is a negligible cost. If you’re a large business this is a huge cost. Cloud providers target large businesses so the savings when you’re smaller are less obvious.
* Elasticity is a huge part of cloud capabilities. Most people use dynamic paygo pricing which is more expensive than baseload demand which cloud provides typically discount because baseload revenues can be used for purchasing additional capacity.