I must stress the very important difference: unlike Monoid, and unlike what the other answers state, MonadPlus does not provide a type with an associate binary operation and the identity. Haskell Report, the only document that can claim the status of the Standard, does not specify the laws of MonadPlus and hence does not require mplus to be associative or mzero
to be its left or right unit. Perhaps the authors were still debating the laws: there are very good reasons for mplus to be not associative. For example, if mplus is associative but non-commutative, the non-deterministic search computation represented by MonadPlus cannot be complete (that is, there exist solutions we cannot find). Since it is quite rare that mplus is commutative, any complete non-deterministic search procedure cannot be represented by MonadPlus, if we insist on the associativity. There has been a detailed discussion of this very issue of MonadPlus laws on SC: Must mplus always be associative