Hospitals were some of the earliest adopters of computers and the systems that were developed have been in place for decades. Most of these systems carry a lot of baggage from their development history and are too risky or brittle to modify without good reason. It's the same story that most big banks find themselves in. Everything is clunky, confusing, and old but the job gets done and that is good enough.
The people making purchasing decisions do not care about the usability of the product, as they are not going to be the ones using it. They mostly care about billing, compliance, data integrity, security, and managing costs. Electronic medical records primarily exist for billing an insurance company or the government. Every other reason given for their existence is secondary to that need. If you don't believe me, check how many staff members are dedicated to billing at your hospital. For reference, the average staff ratio is 2.7 billing professionals for each physician across the industry.
Medicine is both an art and a science. Even physicians in the same discipline vary greatly in the way that they practice their craft. There is no way to turn a hospital visit into an assembly line. Nothing is standard, everything is specialized. This is at odds with the ideal software project, where everything is defined up front and can be turned into an efficient repeatable process. If it were easier I think you would have greater competition which would lead to better products.
Can we do better? Absolutely. The limiting factor is not software development talent. You need to understand how the industry operates to be able to find a foothold. Attacking the incumbents directly will end in certain doom. If you want to learn more about how we're approaching the problem my email is in my profile. We built a product to run our own clinic and are almost ready for wide release.