difference between packer and matchbox
You may use matchbox on a VM as you do on a baremetal machine, you won't be able to use packer on a baremetal machine ont he other hand as it doesn't handle any PXE boot option.

That said, leveraging vSphere/AWS/ API/cli to create a new machine from a template is usually quicker and more effective than using the API/cli to create the VM and then make it boot in PXE.

Packer will create machines, matchbox won't, it will allow you to match a profile with a machine but it won't rack your machine nor plug the networks and power cables, it won't do the machine creation neither for a VM, that not its goal.

So the main difference is the "before provisioning (chef)" step, as the machine creation, Packer will handle the machine creation whereas matchbox won't, matchbox will handle booting a blank machine and push the OS where packer usually won't.