As far as I know, it generally refers to late or dynamic bindng. So why a word like late or dynamic wasn't used?
2 Answers
The term late or dynamic binding describes how the identifier is resolved into the actual implementation of the method, it doesn't describe how the virtual method is used. If any of those would have been used to describe the method, something like late-bound or dynamically-bound would have been used, which is not only long-winded, but also a bit too close to how it's implemented.
Using virtual to describe the method is better as a high-level desciption. It allows you to understand the principle without the need to know how the compiler deals with it at machine level.
It also works for a language that would be implemented using only late binding, where you still want to make a difference between virtual and concrete methods.
The word itself was introduced with SIMULA-67. Ole-Johan Dahl's history indicates that the introduction of 'virtual' into SIMULA occurred just before May 1967, just in time to be included in the paper Class and Subclass declaration that was presented at the IFIP TC2 Conference on Simulation Programming Languages.
However, there is no note to indicate why 'virtual' was chosen.