Why isn't powershell used for this purpose more often?
In your case "that purpose" translates to the need of providing an installer for a "cross platform application", like a java, python etc... application.
The question cannot be answerred directly, but my best guess is that when a team builds "cross platform" solutions, the majority of team members are linux/unix guys that don't like microsoft and possibly even apple a lot.
The problem is that when it gets to large installations (enterprise) of clients, microsoft/windows is the only way to go because of the existence of "active directory".
My team finds maintaining the old-school CMD code tedious, for good reason. I'd like to move our team to powershell instead of cmd.
This "good reason" just means that not all of your team members are experts in "Windows batch language" - but with shell script they are O.K. - both languages are tedious to maintain. They could also complain about shell script and make you think about changing to python.
Powershell is a scripting language compareable to scala for java. Only admins with programming skills can use powershell but on the other hand, programmers with admin skills already use csharp. I believe that is the reason for the lack of use of powershell
The task of "installation" always requires very deep understanding of the OS. My recommendation for integrating well into windows is that you educate 2 team members to some microsoft courses: MCSE or MCSA.
Last but no least, from my personal experience the only problem changing from .bat to .ps1 is that you need to take care about the execution policy and signing. In large enterprises you need ask for the default permission policy in active directory to be changed which can take months. Batch always works.
[A very prominent related example is the "compass" application within the official "mongodb" installer. On OS <2012 (e.g. win7) it just hangs because of the default ps1 execution policy is "don't run anything"]