Any interpreter could be considered a virtual machine. It entirely depends on the definition of virtual machine that you adopt.
Conceptually, a VM is a program that other programs use as a platform to run inside of. Thus this interpreter suits the definition.
But this interpreter only interprets plain-text source code into executions (and not bytecode).
Well your definition of virtual machine does not say anything about the nature of the "platform". So those issues are not relevant.
There is also the issue that you haven't defined "program". Depending on how you define it, your example may not be an example of VM because the interpreter is not a different program to the virtual machine. (On the other hand, that might just be a flaw in your definition of a "virtual machine".)
I would point out that there is one difference between your interpreter and (say) a Java + JVM instance. In your case, the virtual machine is not exposed. It is entirely inside the interpreter. Hence, what it is and how it works is only really of academic interest.
And frankly, so is this entire topic.