Because 802.11 looks just enough like Ethernet to make you think that it is Ethernet, whereas it's really not. Things like bridging don't Just Work with 802.11, which is why putting a wireless interface into a
brctl bridge doesn't work as expected. VirtualBox and VMware have implemented specific wireless bridging in order to make this work (they just don't make a distinction to users).
The solution is to use
parprouted, which essentially bridges at layer 3 instead of layer 2. The caveat is that this only works for unicast traffic -- broadcast traffic is not relayed across the bridge. This is a problem for DHCP, which requires broadcast. If the VM needs to DHCP across the bridge, you need to setup
dhcrelay as well in order to get this working.