This is because at some point they (I think this is from FreeBSD ls) added --color=auto but it works different than coreutils ls:
from the manage:
[--color=]auto will make ls output escape sequences based on termcap(5), but
only if stdout is a tty and either the -G flag is specified or the
COLORTERM environment variable is set and not empty.
and ls.fish no longer will execute ls -G, since --color=auto doesn't fail. I think we should just export the variable.