It depends on the scale, but running containers over a k8s clusters means your load will be distributed among the nodes according to capacity.
Managing VMs with dedicated resources directly means you have to distribute the load manually, leading to unused and wasted resources.