Basically, Linux used to have a bunch of random programs made by random people that did random things that Linux users needed their computers to use.
-need to synchronize network time?
-need to get an IP address?
-need to schedule a program to execute once a week?
-need to write system logs somewhere?
There are random programs written by random people to do all of that, and they were called by shell scripts that executed them in the original Linux init daemons.
What systemd did is, it made a very excellent init daemon that used this trick with sockets that allowed it to start all services at once, making the computer boot really fast.
If it had stopped at that, people would have loved it.
But instead what it did, is, it started writing replacements for all of these random programs, and bundling them with systemd, and forcing you to use their own homebrewed replacements for all these random programs.
Want to use your own program to get an IP address because you don't like the way systemd does it? Then you're at the mercy of the systemd developers to give you an option to use a different program to do it.
Don't need to write logs and so you don't want to install a logger? Then you're at the mercy of your distro packagers to carve out the systemd logger into a different package if you don't want it on your computer.
If you don't care though then you don't care.
really old display server from the 80's. the way it works is nowhere similar to how modern graphics cards work, so it's a nightmare to write software for it. Also it's really insecure, and suffers from graphical glitches (which are sometimes but not always fixable).
BUT, it REQUIRES all programs that use it to be network transparent. (this is technically an oversimplification, but essentially true.) What this means is, you can type "ssh -X" into a program that's running on a server in another building, and the GUI for that program will pop up on your computer as though it is running locally, even though it's running on that distant server.
Wayland is trying to clean all that up, but people have problems with it:
-mandatory network transparency is gone. it is now entirely up to the whim of the application developer whether he wants to add a feature that lets you run an application remotely, and the vast majority of them will never bother. so it will essentually become impossible to use GUI Linux remotely unless your internet connection is fast enough to stream a live video feed of a computer desktop.
-"fragmentation": xorg "tries to do everything", and desktop environments are just thin wrappers around xorg. wayland on the other hand does almost nothing, and puts the onus on the desktop environments to do all the heavy work. this would normally not be a problem, who hates free choice, right? except, all the linux desktop environments have this autism where they have to have their own custom bespoke implementation of everything under the sun ("not invented here syndrome"). and each desktop's programs are tightly integrated with each other, meaning they work like shit with programs from OTHER desktop environments, so it's a pain in the ass to pick and choose which programs you like. this problem will only get worse as even MORE functionality is swallowed up by the desktop environments.
-wayland generally being shitty: there's been a big long almost comedic series of fuckups by the wayland devs. it's taking ages and ages to stabilize and gain features. it's insanely restrictive for security reasons (stuff like preventing keyloggers), meaning you lose a lot of functionality you get with Xorg that allows programs like AutoKey and x2x to function. Nvidia refuses to support wayland. there was this huge shitstorm about screen recording being shitty. i think it was completely impossible for a long time (because applications recording the screen is a security hazard), and then when the devs added the feature, they required you to use THEIR program to do it, instead of making it modular so people could write their own screen recording programs.
-lack of backwards compatibility: many apps don't support wayland, so to use them you have to run an Xorg server in the background anyways. so by switching to wayland you don't really gain much and you just lose network transparency.