So I’ve run mine on my Pi4 and Pi0W and the framerate is a constant 3.5FPS. As @lexfiend said, I’d take a wild guess the 50FPS is theoretically possible but that Python isn’t really up to the job. They should maybe clarify that on the store page.
For funsies I tested @alphanumeric’s suggestion that SPI speed might be too fast, but I get pretty much the exact same results when running the SPI at 160MHz. I can’t guarantee it is actually running at that speed, but the speed setting being too high doesn’t seem to be an issue. Dropping the SPI speed from 80 MHz to 50 MHz drops the frame rate a little (~2.7 FPS), but a 23% drop in FPS for a 37.5% drop in bus speed suggests to me that there’s definitely something beside the bus speed limiting things here.
As to the magnitude of that task: 240 x 240 x 18bit color x 50fps = 51.84 Mbps .
Poking through the library it runs 16-bit colour, not 18, so it works out at 46.08 Mbps. Definitely possible at the 50MHz speed, let alone at the 80 MHz speed.