I'm pretty sure GitHub actions do use a whole (though probably lightweight) VM. And I think AWS lamdas do as well, or at least used to.
https://aws.amazon.com/blogs/compute/container-reuse-in-lamb...
https://docs.microsoft.com/en-us/azure/azure-functions/funct...