In Elixir you have consistent utf-8 binary string usage everywhere, consistently named modules/functions, consistently ordered arguments/return values, and, thanks to the pipe operator, in 3rd party code as well.
No separation between header and code, structs are better than records (because they bear their data labels when you inspect them, even if you send to another node that doesn't recognize them), and also since elixir requires that the tags are modules, you can use them for polymorphism (this is the best of OOP without OOP).
Much better documentation support, better compile time infrastructure, smart metaprogramming (this package would be a PITA in erlang: https://github.com/ityonemo/zigler), opinionated but optional directory organization. Module namespaces which are trivially subdivided and aliased, easier time making anonymous GenServers. The Task module, full stop. The registry module, as well.
most of that has to with libraries, not the language. I'd take good libraries with Erlang semantics and syntax over good libraries with other lang's semantics and syntax.
Not really the underlying concepts again the VM and OTP stuff are pretty neat, but the fact that it's fairly esoteric when it comes to writing it imo. That may be a shallow opinion but it did keep me away from the language in a way Elixir did not, time is money and I believe Elixir is far easier to write and maintain and as such is quicker to work in with the right tools to boot.
Why not?