What does headless mean in software?
Headless, as the word itself says without any head, technically without any visual interface. Refer this article.
In software, headless means, software application capable of working on a device or hardware without a graphical user interface. Such software receives inputs and give output through other interfaces like network or serial port.
In real life, we may find these common on specialized servers and embedded devices.
Why do headless system or software exists?
Probably to save energy and cost of machines, with a low resource intensive application industry can save much more energy and money used on hardware as rendering graphics require more complex systems.
In real life scenario, we do not require a graphical user interface. It is just our computers and mobile devices.