It could be overhead in PHP, or it could be that microtime()
and usleep()
in PHP aren't that accurate. It would be interesting to see what similar code in C does.
This article has an interesting discussion on accurate timing.
And this article by VMWare on timing in virtual machines may be of interest.