IMO if you want to replace ls it has to be a 2 character command. I can type ls super fast with two hands. exa is really awkward to type.
no seriously, when you properly alias something in your .bashrc, they only take effect in an interactive shell.
ie: an `alias ll='ls -halF' in your bashrc does not work if you do `bash -c 'll' nor `./fileThatContainsll`
.. but exa is not backwards compatible with ls OOPS
Which is why I stick with ls (and grep instead of rg and coreutils instead of shiny rust equivalent), I can't deal with the cognitive dissonance that arises from these differences.