It won't hurt performance. It might in fact be (very, very negligible) faster because you save the overhead of passing these objects to the game objects.
The reason static classes are often frowned upon is that their static properties are global variables and globals cause all kinds of problems architecture-wise. For example, when you ever decide you might require more than one Screen, ObjectFactory, SoundPlayer or Painter object, you will have a hard time refactoring your application to allow that. Another problem is that you can't initialize these objects as soon as they are created, because they are always around. That means you need to keep in mind which one is already initialized and which one is not, which can cause quite a headache when they have dependencies on each other.
But if these reasons are not convincing for your particular project, there is nothing wrong with static classes.