Because it's not superior, not on its own. You need context to tell which
one is better. Not to mention that you look too closely, so you miss
higher-level design that makes the difference between functional and
imperative languages.
Bad oop is clearly inferior to good functional. ie React. But if OOP is able to do functional as well, shouldn't OOP win on the long run?
If you try to code functional in an OOP language, you would have to make sure that no third party modules (or coworkers accidentally) write code that "misbehaves" in such aspects. Just like you currently have to make sure that the Ruby code you use is threadsafe.
With immutability you gain all those features baked into Erlang/OTP (scalability, reliability).