That’s because nobody works for free.
The means by which “public cloud” can garner cost efficiency is only through overcommitment. That is, you buy $X but use $X-something, and the company keeps the something.It only works for you if you would have bought $X and then used $X-something in your own environment. In that case there is a margin to capture from you through moving to public cloud.The problem with this is that it works, largely, for mainframe migrations and similar where the load is very “bursty” and thus you have to pay for a lot of capability you almost never actually use. In this case “public cloud” can give you the capability only when you need it, which is a net savings.But for most other workloads this is not true and since nobody works for free the total cost is higher, not lower.