The author touches on the reason, but I'd phrase it more strongly.
Shared mutable data concurrency is hard because it removes ability to locally reason about code.
x=1
x++
assert(x==2)
can now fail.