Bare metal has higher fixed costs (mostly people’s comp) and lower marginal unit costs (per GB RAM, per TB, per CPU-second).
I think at small scale, I’d put nearly everything natively in the cloud (including every side project that has a network-connected, always on component). At extreme scale, most things should be bare metal. There’s a crossover point somewhere in the middle. For me, that crossover point is somewhere in the huge scale range.