Unfortunately, VirtualBox does not automatically zero-out free space of Windows virtual machines. This requires a manual process in order to reclaim space.
From within the Windows VM, first clean-up space and empty the recycle bin. Then, zero-out all free space by running the following command as administrator:
sdelete -z C:
Then, from the host, reclaim all free space from the virtual machine VDI hard disk file:
VBoxManage modifyhd [disk.vdi] --compact