Ordinary VM takes several GB of storage to store the whole guest OS. A docker image is only as big as the delta inside it and you can easily persist data outside of it with docker volumes.
Windows VMs are a hassle to setup, install, manage licenses, expiration of such etc..