The software ends up extremely rigid and hard to change. Changing the length of a field from 9 to 10 characters can cost hundreds of thousands of dollars of development time, as you update VSAM or ISAM files and copybooks across a zillion different places. Hopefully you have enough padding everywhere if you want to add something to a request.
It has all sorts of annoying legacy limitations. CICS transactions are limited to 4 character names. Was it S320 I was supposed to call or H614? Did anyone bother to update the software to support lowercase, let alone UTF-8? (it's possible, yes, but rarely done.)
The dev environment has huge limitations in the way you work. With modern stacks, you can spawn, wipe and respawn the entire stack on your laptop. You can't spin up a clean z/OS on your development machine to run tests. You can't download a VM to do some playing and learning. (Hercules tries, but....)
The hardware is expensive, since you're usually using some sort of mainframe or another. We commonly run into fights at our company about whether we can enable some sort of functionality because the cost of executing it on the mainframe at peak hours will be so expensive in MIPS and thus dollars, and there's no convenient way to move that processing onto a lower cost platform. I can't use that source code on an elastic cloud provider, I can't easily migrate or replicate that data, etc.
The hardware usually works, but when it goes down it goes down hard. We recently had an instance where a component that was redundant and hot swappable was swapped, and it caused some electrical fault which brought down the entire mainframe, corrupting the disk. It was completely down and not processing transactions for 12 hours and was having data inconsistency issues on lesser priority transactions for a week. But it's been at least two or three years since the last time some large-scale problem like that happened. (IBM said it shouldn't have been possible. Twice.)
If you have a COBOL system and it's doing exactly what you want it to do, awesome. It's probably pretty solid. If you want it to do something else, you'd better know beforehand if it's worth it. You won't have the ability to cheaply experiment on new ideas.
It's been noted that big companies find it hard to innovate. I think that COBOL systems are often a reason why.