Technically the problem is one of horsepower plus the browser getting in the way. The absolutely fastest way to move pixels around on your screen is with an application written in assembler, or better still C/C++, in conjunction with a graphics processor doing the heavy lifting.
From my experience of using C to write snakes and asteroids games on Windows, I know that frame rates of 400-700 frames per second can be achieved. These are very high as it’s not syncing to the monitor refresh. That’s on a one-year-old PC with a GTX 480 graphics card, so it’s exactly state of the art. But similar technologies and exploiting the power of the graphics processor are what make AAA game titles run so fast.
Other routes are Google’s native client with games, like the impressive conversion of Bastion showing what that technology can do. But so far only Google Chrome supports that.
WebGL is nice as this physics engine demo running at 30 -60 fps shows. But it takes more than WebGL to make a game.
- Improving HTML5 Canvas Performance [HTML5 Rocks]
- IonMonkey in Firefox 18 [Mozilla Blog]
- No Single Benchmark for the Web [Mozilla.org]