It depends how well you know Windows or Mac OS X.
systemd is roughly equivalent to Window's svchost / Services  or Mac OS X's launchd . Maybe if you remember DOS, it's kind of like autoexec.bat / config.sys (shudder). systemd is meant to replace the init system in Linux.
Right after your computer boots and loads the hardware interface (the kernel), systemd or init is the first program that starts that is meant to start all the other programs. Traditional UNIX philosophy is to keep things extremely modular and simple. Each piece of software should do a single job and do it well. Furthermore, it should easily work with other modular programs. The controversy is that systemd has a tendency to expand in scope. While it has various subsystems and modules internally, it is trying to do "everything".
The motivation for systemd is that modern systems have many services which need to interoperate, particularly at boot time. The old init system would start each service sequentially, one right after another. Modern systems now have multiple-cores and it would be advantageous in time to start services in parallel to take advantage of multiprocessor systems. In order to do this, there is a dependency graph problem where you have figure out which processes can start in parallel and which one depends on the others. For example, before you start a web server, you probably want to make sure that that the Internet connection is up. This problem has been solved and part of the solution was retrofitted onto init. Systemd, however, also wants to supervise services as they are running and possibly respond to events. These features are more important to laptops which boot frequently and change environment. Servers, however, boot infrequently and exist in relatively static environments where the additional complexity of systemd might cause an issue.
Windows and Mac OS X have embraced solutions similar to systemd earlier to take advantage of tighter integration and also partly due to development being centralized. Linux development is more distributed and many would prefer it to be more modular and simple. The fight over systemd is a philosophical debate about whether the core services in Linux should be centralized and integrated or highly modular and simple.
The dichotomy is false, however, as what is really needed is specialized configurations for different situations. What people are squabbling over is whether generalized solutions should lean towards supporting their specialized application (stable servers vs flexible laptops). The distributions which package software have been leaning towards systemd to support both, but those interested in servers see little advantage, greater complexity, and more security issues in systemd than in the previous init system.
In summary, systemd is a replacement for the first process that starts in Linux that is supposed to provide core services. At the cost of simplicity, systemd integrates many services internally. The disagreements over this are philosophical and are about people fighting over the direction of generalized solutions rather than working towards optimal solutions for their specific needs.