Depends on your needs. Do you need near-perfect uptime? Most don't; their products aren't so critical, so they settle for a cheaper option. Do want to run a data center? Most don't; it's so much easier to push code to AWS and let them handle the infrastructure demands.
Startups historically survive because of adaptation and speed. The mainframe may not fit those operational principles, though that's up to a given startup (see below for industries which might benefit the most from a mainframe).
> Is it "worth it" financially?
The System Z series excels at transactions and updating records. Industries which deal extensively with these types of computations are banks, airlines, credit card companies, stock brokers, insurance companies, and certainly others. If you're in one of those lines of business, you probably should look into mainframes. More generally, if you need to maintain system state at all costs, mainframes are probably a good option.
I would not recommend mainframes for heavy, laborous computing loads (scientific computing, rendering boxes, etc.)
> Is the mainframe skill shortage ("dreaded COBOL"?) a real thing?
If a company wants to add a new feature to or fix a bug in a 40 year-old COBOL program, they'll likely have a hard time finding a young programmer, sure. Some older COBOL coders are helping fill the game while they can. Don't forget that the System Z mainframes have a level of backwards compatibility that makes x86 blush; your COBOL program will certainly still run.
I wager most new programs (<15 years) have been written with Java or C++, given z/OS supports more languages than COBOL: https://www.ibm.com/support/knowledgecenter/zosbasics/com.ib...
COBOL is dying, as it would be ridiculous to start a new project in COBOL. But many legacy systems still work, so why change them if they aren't broke?
I've made a comment in the past about IBM mainframes which you also might find informative: https://news.ycombinator.com/item?id=20978305