It’s really not that hard. I have found that writing robust shell scripts is pretty easy.
Don’t use bash, stick to #!/bin/sh, use shellcheck, wrap all variables in quotes, use command -v to check if a binary is available before trying to use it, and don’t use gnu specific things.
Sure all of that is easy, but control flow is a nightmare. How do you deal with cleaning up resources on failures? Idempotency? Traps? It’s a fucking mess
I don't know what to tell you other than skill issue.
I don't think shell is a great language or even that good for configuration, but it is pretty simple and the quantity of footguns are similar to JavaScript.
My issue with systemd is not the configuration file/language, that bit is pretty cool. My issue is mostly with all of the half-assed auxiliary services they keep pushing and something is not quite right with systemd itself, the complexity causes issues with weird edge cases.
Early in my career I was all for systemd, thought it was the greatest thing ever, then I got bit by the edge cases a few too many times. Meanwhile I have had zero issues with openrc or s6.
I don’t disagree about skill issue. I just don’t think you should require immense skill to implement simple control flow without shooting yourself in the foot. It’s much worse than modern JavaScript in my opinion.
I don’t buy the argument about all the auxiliary stuff. You are free to not use it.