The problem with a lot of these things is that they run on System/390 (which we now know as z/OS) and use stuff that only those familiar with S390 know: CICS, TSO, ISPF, COBOL, RACF, OMVS … if you know what any of those things are, you're probably better qualified than most people in IT these days. Note that I said "you know what it means", not "know how to do stuff with that".
It also doesn't help that a lot of stuff from the mainframe's heyday was done in COBOL, which was all the rage back then in business realms up until Dijkstra rightfully slammed it and fell out of favor. (Sadly, nobody was able to do the same to Visual Basic.) Maybe the only thing worse than having to work with VB6 code or COBOL has to be MUMPS, and that language will also live for eons thanks to its usage in the US healthcare system.
Some banks have been migrating their code to better languages like Java, but some of these projects take years or decades, and even then they only get something like "now we got 40% COBOL code in our core systems". Most of them have simply made some kind of "core system" for the lower-level stuff, and simply develop middleware stuff on top of that. Because nobody wants to be the team that broke the bank's code!