I think I understand why, I used Vagrant for many years and this was my evolution:
* Vagrant for everything: VM provisioning(always local), os dependencies, app dependencies and the apps themselves was all Vagrant.
* Vagrant for VM provisioning and OS dependencies only. docker-compose for the rest
* Vagrant for VM provisioning, Rancher 1.6-ish for the rest
* Vagrant for VM provisioning and K3S for the rest.
* either k3s or docker-compose with no VM
so towards the end it was easy to replace Vagrant with whatever provisioned a VM