First, the tool itself made for development environments. or to do mimic prod for testing purposes. It eases the pain of configuration dev environment configuration drifts using a shareable configuration file.
Also most cases, vagrant is used on top of type 2 virtualization like virtual box or VMware workstation. It works on type 1 too, but for type 1 you have better tools to do the same. To be precise, for production, we need a reliable and scalable solution for managing VM’s and apparently, vagrant does not serve that purpose.
When it comes to docker, prod environments always deals with better cluster management tools (kubernetes, Mesos, swarm etc). Vagrant could be a starting point where creating, developing and bundling docker images with app code for deployments. The moment a docker image pushed to docker hub, you should have a good pipeline and orchestration tool to deploy that into prod.
However, “vagrant push” feature is really good for small to medium app deployments. I am not saying that you should not use vagrant for production. It’s just that why vagrant when you have other better tools to make you prod environments more reliable and repeatable.