As a commenter's suggestion, I am promoting this from a comment to an answer. (Apologies if there is a better way of doing this.)
I have seen this behaviour. The solution was to pre-allocate the disk space for the virtual hard disk, rather than leave it on the default setting, which is to allocate disk space from the host only as and when needed.
By default, in Virtualbox, when you are creating a new VM, on the disk-creation screen, there are options to create a new disk (or to choose an existing virtual disk).
If you select the native VDI format, as well as asking the size, the wizard asks if you want the disk to be "Dynamically Allocated". If you choose this, a very small virtual disk file is created, but the hypervisor lies to the VM and tells it that this is the size of the maximum size you chose. As data is written to the virtual disk, the file grows.
For a description of this process, see Wikibooks.
This does not work with Plan 9. Somehow it can detect that the disk is not in fact the claimed size and formatting fails.
Instead, choose a fixed-size image. This will pre-allocate the whole virtual hard disk. It may take some time, but then, a Plan 9 disk does not need to be large by 2020s standards.
This is also described in the VirtualBox manual.
I found that if I created a fixed-size image, Plan 9 was able to format it and then install onto it without problems.