I've heard lots of people say versions of this, and everyone seems to differ on what exactly "complicated" means. Some have a seemingly arbitrary line count of maybe 100 LOC, others suggest when you start using functions or external tools inside the script like awk/sed/perl/etc in an "advanced" way...I have always been of the view that as soon as a shell script got complicated it was time to move to perl(1), but that just makes me old fashioned these days.
I mostly agree that at a certain point it's time to move away from shell to something, but to what? I used to know Perl fairly well, but have only ever worked with two other people who have understood it. I don't enjoy writing Python but has been a bit more common. I detest javascript, but it's been common in some workplaces.
The most commonly "understood" scripting language I've come across in most of my workplaces is shell (plus various external tools like awk/sed/curl/jq)...Admittedly nothing is ever very complicated, and most people I've come across don't know how to write portable and maintainable shell scripts...
I tried to do some "personal fun stuff" in Perl a coupe of years ago and found that CGI had been removed from core and was generally discouraged in favour of some other frameworks. After trying to relearn Perl and one of the frameworks I eventually gave up and wrote some Go for the first time which seemed to come a little more naturally to me now
Sorry, taken this way off topic now!