No, I do not agree. PHP is really compiled before being executed. The result of a compilation is binary code by the Zend engine. Here is is the main compiler file:
svn.php.net/viewvc/php/php-src/trun
...
Until PHP 3, the PHP scripts were interpreted and executed at the same time. This means that if you had a syntax error in a PHP script, the error would only be spotted when the PHP interpreter attempted to run the line with the error.
Since PHP 4, the Zend Engine compiles the PHP code first before executing, as explained in the article. So, if you have a syntax error, it is spotted before the code is executed.
The fact that the actual execution of the compiled PHP code is done by a virtual machine, does not invalidate the fact that PHP code is compiled into binary code.
If it is important for you to compile PHP code into native machine code, there are extensions for that, besides mention Facebook HipHop for PHP compiler.
pecl.php.net/package/llvm
The fact is there is is not great interest on this because the performance gains for real world PHP applications are neglectable.
Other than that, if you use a caching extension (and most busy sites do), PHP does not recompile the original source code on every request, unless the source code is changed. That is actually an advantage of PHP because you do not have to be bothered with were the intermediate compiler output results go. It just stays in the shared memory for top loading and executing speed.