Following the output I would expect the same results in both cases, however A->B_vm is good, but B_vm->A is bad. Having ~3.5G in one direction shows that there is no issues with IB communiction, so may be it is how the ranks are bound on the VM or real host?
mpirun -np 2 -host A,B_vm : 3554.95 MB/s
mpirun -np 2 -host B_vm,A : 804.30 MB/s
Try to use ib_read_bw and ib_send_bw utilities before MPI. Also check that your CPU are running on the maximum speed, as seems that they are not - 1200 MHz/1995Mhz.