Partly because launchd didn't have a sensible Open Source license, and partly for the same reason systemd doesn't run on non-Linux kernels: it's designed for its target OS, and makes use of that OS's native functionality to the point that porting would become decidedly non-trivial.
systemd took heavy inspiration from launchd and other sources, but provides extensive functionality that launchd does not.
systemd took heavy inspiration from launchd and other sources, but provides extensive functionality that launchd does not.