This question leads to the classic xkcd standards problem: https://xkcd.com/927/
IMO almost any modern scripting language is totally up to the job of being better than bash for larger scripts. Python, Ruby, Lua, etc. all have facilities to access the filesystem and run external commands while also giving you things like modules and classes as ways to organize your code. The former is essentially table stakes for this kind of job, while the latter is what starts becoming useful once you pass a certain size threshold. 25 lines is, of course an arbitrary threshold, but it seems reasonable enough for me.
Bash "just works" for the majority of UNIX-like systems. Even if you don't have bash installed, there's a good chance you've got a simple interpreter that can run a script file like zsh or sh.
There are reasons one might use Python, but I always reach for bash when I'm doing sysadmin or text processing work.