6 fps is near the calculator's ceiling (it measures about 5 fps on this view); 20 is the desktop harness default. The game moves one step per frame, as on the calculator, so the cap also sets the game speed.
Why the calculator tops out near 6 fps
On the eZ80 one byte written to VRAM costs about 122 cycles, so frame time follows painted area. Measured in 32 kHz timer ticks:
frame_ticks = 1204 + bytes_painted × 122 / 1465
Painting the full 320 × 200 view alone takes about 0.16 s, a ceiling of about 6.2 fps however good the renderer is. The readout next to the frame cap shows how long the same game logic and rendering take per frame in this browser.