I personally work on a mainframe every day, so I may not be saying anything that hasn't already been said, but it is my own personal experience.
The system and codebase we use has been developed and maintained for over 20 years. It is a BIG system, with hundreds of thousands, if not millions, of lines of code, and the database is a flatfile proprietary database. Anyone who tells me there are conversion programs for what we have has no idea what they're talking about. There is just too many variables, and it just doesn't convert to say a webserver farm and SQL clustering. Sorry.
Having said that, the main reason we STILL use it, is because we don't have the time/money/manpower to get off of it. We did a project to web enable the front end to get off the terminal based client interface a few years ago, which was really only dealing with the client side of things, and that project(which was rather successful), took about a year and a half.
I don't particularly enjoy the technology used and I definitely don't enjoy maintaining 20 year old procedural code, but I do understand WHY we do it.
EDIT: Also as one final note on why we stay on it, and the most important from a business standpoint is that it WORKS, and it works well. We process tens of thousands of transactions per day with no processing problems whatsoever, and don't even come close to maxing out the CPUs.
EDIT 2: Just for fun, here is a sample of what a conversation with the CIO would be like for trying to push for a migration project:
Manager: We think it would be a good idea to upgrade our hardware/software to something a little more modern.
CIO: Why? What's wrong with what we have now?
Manager: There are a lot of modern platforms and languages that we could take advantage of to meet our current needs and we kind of feel like we're getting left behind.
CIO: Are we not able to meet business requirements with the current system?
Manger: No, although common tasks take a bit longer to complete than they would in a newer language/platform.
CIO: Would switching to a new platform bring us any performance benefits?
Manager: No.
CIO: What kind of timeframe would we be looking at?
Manager: With our current staff, we would be looking at minimum 1.5 to 2 years for requirements gathering, development, and QA. That's not including current development/maintenance of existing projects.
CIO: Would we need to hire any new people for development or administration?
Manager: If we did the conversion we may need a few seasoned programmers that could get up to speed quickly, as well as additional QA help for the scope of things to be tested. We would probably also need to look at our facilities to see if they are capable of housing many servers versus the one mainframe that we have now. We would also need someone who could administer many web and database servers once development was done.
CIO: Hmmm. I don't know if that sounds feasible. Is there anything else?
Manager: Well we're afraid soon all the COBOL programmers are going to die off and we won't have anyone left to develop on the current system.
CIO: Get out.