When I started using Elvish I also found it hard to learn that ~/.elvish/rc.elv was the only initialization script and it is only read by interactive Elvish shells. In fact, this question is an example where a traditional man page would likely make it much easier for a new Elvish user to answer what is a very common question about any shell.
This is now documented in https://elv.sh/ref/command.html. (I also added a sentence to say explicitly that Elvish doesn't evaluate rc.elv when running a script).
There was a recent discussion on Gitter about Elvish initialization scripts. It began with this question:
To which I replied:
When I started using Elvish I also found it hard to learn that ~/.elvish/rc.elv was the only initialization script and it is only read by interactive Elvish shells. In fact, this question is an example where a traditional man page would likely make it much easier for a new Elvish user to answer what is a very common question about any shell.