The difficulty with discussing features is that most people simply don't have the language necessary to discuss it properly. It's not simply a matter of hard/easy possible/impossible - it's all about what the codebase was designed to support.
But even ignoring the technical parts, let's think about the player experience. Real-time PvP means you need to find a player with an appropriate team who is looking for a PvP match at the same time you are. You could easily be waiting a few minutes for the match to start, if you're playing at a time or a level that is uncommon.
Right now matches are all client-side, which means you don't actually ping the server until the match is over. That's 1 network call at the end of the match. The servers right now are balanced for that level of load. Sending a network call to and from (2 calls!) after EVERY match/spell would be something like a 30x increase in network traffic per game! And that also means a 30x increase in the number of games dropped or lost due to poor connections.
And what if your opponent simply stops making moves? Or if you need to deal with something for a moment? How long does the game wait? Is there a new timer implemented? How does that affect your ranking score? Are disconnects taken into account during matchmaking?
There is also the potential problem of boards getting out of sync. That's not possible now, since there is only 1 board. But with multiplayer - it could happen. So there needs to be some sort of provision to check that - which means even more network traffic. And code to resolve things if the boards are mismatched, etc etc etc.