The Singleton
pattern is not an effective object-oriented design pattern and is rarely appropriate in a distributed environment. Surely, it can be implemented but would typically become a potential bottleneck in an enterprise software system. Moreover, there are usually more effective ways to design an application without a Singleton.
Singleton is an easy thing to teach and is very simple. So, this is typically the main pattern taught in academic programs by professors who have very little practical experience in object-oriented software design.
Singletons should be avoided in object-oriented software systems. This is true whether they are used in a distributed environment or executed in an application on a single machine.