I think the main issue with using programming languages to run your CI/CD is that the whole point of CI/CD is to test and verify that your code works. Now you have code that may or may not be buggy, running your CI/CD so you'll have to set up CI/CD to test your test running code, ad nauseum.
People might hate constrained configuration, but the idea is that you dont have to prove that what you're configuring is actually whats happening.