I'd be interested to see how Elixir does with an OTP-optimised redo. Probably still not great, but I feel like the example isn't playing to its strengths.
It's also an option that isn't unique to Elixir. Go is the obvious other candidate where the programming language helps, but all of the languages have support for parallelism.
I made a PR to fix that: https://github.com/drujensen/fib/pull/33
18> timer:tc(fun fib:main/0).
2971215073
{59352962,ok} % 59s… slooow
19> hipe:c(fib, [o3]). % compile with Hipe
{ok,fib}
20> timer:tc(fun fib:main/0).
2971215073
{12570352,ok} % 12.5s!
PS that's Erlang, but it will be similar with Elixir.