pyGame основан на SDL, который основан на потоках.
Когда у вас есть потоки, печатные сообщения в принципе не имеют значения. Потому что часто из-за слайдов планировщика (больших в SDL) сообщения печати откладываются. Его не то, что pygame медленный (это некоторые ситуации, но не в этом), его просто то, что оператор печати находится в отдельном потоке событий.
Попробуйте сделать this в pygame, он будет работать очень хорошо.