It doesn't require a mainframe but that was the cheapest path to keep things running without rewriting the software. The IBM Z platform is very good at maintaining backward compatibility. If you don't constantly keep your applications software up to date with support for new platforms then eventually you find yourself with very limited platform options.
Nothing, but rewriting a train system from scratch and testing it is incredibly expensive and disruptive. Eventually you do have to do it, and we might not agree with their trade offs here, but it's not unreasonable.