/etc/profile not being sourced for login shells
Unlike other systems, sh is its own compiled binary as if you called bash --posix. From the Bash Reference Manual:

The POSIX startup files are executed ($ENV) rather than the normal Bash files.


env -i strips every environment variable. Even adding it back as env -i ENV=/etc/profile does not work.

Instead of sh just use bash:

env -i bash -l -c env