As told in @adamskinner 's answer, React did if for performance. The idea came from ClojureScript, whose data is designed to be immutable. The original idea may be from Haskell, I'm not very sure. But you can find more at en.wikipedia.org/wiki/Persistent_data_structure .
The reason it adopted immutability is Rich Hickey think that mutation is unreliable. Once you share the data to many people and all of them are able to modify data, you can never be sure the data is what you want. And sharing data in parallel programming will become more dangerous. That sounds unrelated to React, but in large GUI apps, when you share the data, it will become hard to restrict the behaviors from various developers. So, immutability may help.
While MobX is very useful and very performant, it doesn't mean mutations is always good. You still have to make sure that the uni-directional data flow is working as expected. It's just JavaScript is implemented this way, which makes operating immutable data a bad experience.