While COBOL programmers are in demand, the demand is not very high.
And banks actually do train programmers, every company does.
So: the main reason why the demand is low: the COBOL systems simply run. And is why they don't get replaced. Why would I replace a program which only get changed once, around 1998, over the course of the last 30 - 40 years?
Hu? Banking is a well known domain since a few thousand years.
The requirements for data processing backends rarely change. When I did Y2K reengineering I had code in my hands that literally never was touched/changed since it was considered good enough to go into production.