Что использовать для PHP разработки? Vagrant, Ansible или Docker?
Это зависит от того, что, куда и как вы будете диплоить.
По хорошему чем ближе окружения для разработки к продакшну - тем лучше.

Лично я работал со следующими связками:
- Vagrant + bash provisioning
Этот способ с самым низким погором вхождения, но он очень требователен к качеству кода И процесса установки и обновления.

- Vagrant + ansible provisioning
Этот способ по сути включает в себя bash provisioning, но в структуре ansible. Работая в команде будьте готовы к тому, что провизионирование далеко не у всех будет нормально работать и это будет источником вашей головной боли. Если базово подтянуть bash у сотрудников еще не вызовет вопросов, то с ansible это процесс будет сложнее. 

- Docker
Чистый докер требует далеко не маленькой компетенции. В команде я бы настоятельно не рекомендовал его использовать без дополнительных обвязок. По сути вам прийдется сделать свой docker-compose.

- Docker + docker-compose
Считаю оптимальным решением для dev окружения при работе как в команде, так и без.
Для первичной настройки и поддержки актуального состояния используются системы управления конфигурациями.

Docker используют чаще для гарантии идентичности среды, как в продакшн. Т.е. локально ведется разработка, тестируется в Docker. Если тесты пройдены - можно выкатывать в продакшн. Можно развертывать вручную, конечно. Но лучше, когда используются системы CI/CD (Jenkins, Gitlab CI/CD, Github Actions и пр.)
В случае Docker такие системы на сборочной машине собирают приложение в контейнер Docker и загружают его в реестр Docker, а затем на целевой машине скачивается контейнер и запускается.
В Jenkins можно использовать тот же Ansible и для разворачивания проекта.

Разве не логичнее использовать Linux в качестве хост машины? Всякие VirtualBox не подходят для этих целей.
Ну и если сильно нужна Windows - установите ее в качестве гостевой ОС.
Вот для сравнения различные системы виртуализации:
https://wiki.openvz.org/Comparison