There should be a website that tells people to not make generalized statements.
Besides, I think the author is missing the point. Sharing memory between threads is a huge part of what makes them fast. The difficulty doesn't lie in having to deal with mutexes - in fact I think mutexes and critical paths are easier to work with than message passing. Instead, the difficulty lies in trying to weave all these parallel moving parts together in a way that's both fast and correct. Synchronization primitives are easy, it's the actual synchronization that's hard, and multi-process doesn't fix that.