(out of curiosity, what does dynamic dispatch involve that virtual dispatch doesn't?)
I don't think there's a formal and hard definition, but virtual dispatch to me refers specifically to virtual functions and vtables, whereas dynamic dispatch could be any form of dynamic dispatch