Elixir isn't so widespread because it's quite new in the scene. And, in the beginning, it targetted an audience which wasn't stacked anymore.
Bringing the Ruby syntax to a fully multi-threaded environment isn't such a hot topic too. JRuby tried, IronRuby tried, Rubinius tried and with Python we have already an established language which looks relatively similar to Ruby and has better performance in many situations.
But Elixir didn't stop at porting Ruby syntax to Erlang. It added pattern matching, immutability, macros and has seamless as well as penalty free interop between Erlang and Elixir code. In contrast, JRuby has a very slow startup performance compared to Ruby but has a better IO performance than Ruby. To use some Java libraries, you have to write code differently than you would do for talking to other Ruby libraries. Elixir doesn't fail on that topic.
Pattern matching together with immutability allows so much better control of data flows. Instead of multiple If-else or switch-case statements you write your conditions line by line. It's clear which condition will pass. No messing around with braces brackets and curlies.
Immutability forces you to think simple. If you get access to a variable, its content will never change while in your hand. No need to think of how when and where to check if a value has changed. Instead, you are dealing with copies, and the Erlang Garbage collector does an excellent job here because dealing with copies sounds like eating memory like crazy. Erlang splits blocks into micro processes, and if a micro process finishes before Garbage collection, memory is discarded for free. It's ultra fast, because no stop the world, compared to JVM and other VMs.
Macros are crazy. Code which writes code. Elixir is written almost entirely from macros. Phoenix (similar to Rails) is also almost written from macros.
Elixir code compiles into BEAM machine code. This format is a native format for Erlang VM. Executing BEAM code allows to call and receive data from other BEAM code based programs. With very few exceptions, Elixir and Erlang programs do not need to know which language was used to generate BEAM from the sources.
Now it's up on us developers to pick up Elixir. Bringing Elixir into bigger companies like it has happened 3-4 years ago with the explosion of Node.js.