Moat is a great example of a card that is pretty much AWFUL in 2 player, but much better in larger games. Kind of like Thief, except you still don't usually want Thief in multiplayer anyway.
In a lot of decks, you're trading immunity from attacks in exchange for at least one dead card in your hand most of the time. Either the dead card is Moat itself if you have another terminal action, or the terminal action that you inevitably dead draw when you play Moat. Moat Big Money isn't a serious strategy in many games, but I guess in a multiplayer junk flood it will win faster than someone being pelted with Curses in all directions could.
It's not terribly good in engines either, because you need Moat in your hand, so you still want a Moat every 5-10 cards or so. That requires more Villages, and then you still don't have good card draw, so you still need that to an extent... it's just not a good time trying to build an engine with Moat as your defense.
I'm really struggling to find situations in 2 player where Moat really is the best option. It just isn't, really. I guess really, REALLY big attack payloads like Cultist which can only be fired a few times would LOVE a Moat to make sure you're not on the receiving end of a giant Cultist chain.
I think this is a common misconception. Yes Moat is significantly weaker in 2p than in 4p, but it's still very playable in 2p. For example, in a Curse game with no trashing, you often want Moat. If you block 1 Curse on the 2nd or 3rd shuffle, that's one less dead card in your deck every shuffle for almost the whole game, and it can make a difference in the Curse split, which is 2 VPs, and +2 cards isn't terrible.
In an engine it's fine, particularly if you have some sifting to make the +2 cards stronger. In engine games, your opponent if probably attack you more than half the time anyway, so you almost always get something out of the reaction. You don't need it in your hand every turn. Just on the turns you have it, it's an advantage.