Currently, each operator has their own site, with its own pricing structure and sometimes its own loyalty bonuses. Cross-border trains sometimes have dramatically different prices when you buy tickets in the origin vs destination country.
But worst of all, you often can't buy one ticket for complex routes across Europe, as you can with flights. Instead, you're forced to piece it together yourself from individual tickets. The problem with this is that since you haven't bought a ticket from anyone for the entire route, it's your own responsibility if a train is delayed and you miss your connection. Until we fix this, trains will never be a viable option for many trips.