1. Short definitions are preferable to long ones.
2. Reusable generic definitions are preferable to overspecific ones.
3. Case analysis should be kept to the bare minimum necessary.
The notion of "monad" fits these principles perfectly:
1. "A monad is a monoid in the category of endofunctors." Short and to the point.
2. You cannot possibly get anything more reusable and generic than category theory. (Contrast with "instanceof" and reflection breaking type safety, and essentially depending on luck and the stars being aligned in order to work.)
3. There is no case analysis whatsoever in the definition. (Contrast with: "if a pointer is invalid, dereferencing it is undefined behavior, otherwise...", "if a downcast is invalid, performing it will result in a ClassCastException being thrown, otherwise...")
Note that my understanding of "simple" actually encourages abstraction (for the benefit of genericity), rather than dissuade it. Abstraction might make things less "easy" (this is subjective, though), but in no way does it make things less "simple" (this is objective).