There is vi which is sort of sufficient. Vim would make things a lot easier.
What you're calling "vi" is actually vim.tiny.
I don't see any use case of editing a file on TrueNAS apart from really small shell scripts.
Well, just to be contrarian, I'll point out that I do a great deal of editing directly on the NAS, including one of the largest shell projects I've ever done, two scripts that together weigh in at more than 300KB. This is very useful because these scripts are shared out as read-only, and there's very little value in having a special VM just for editing.
Part of this works because I'm a native vi/nvi user, learned way back in the day on BSD 4.2, SVR4, and SunOS 4, and I tend to stick to a minimalistic set of operations that work across the board, even on stripped down embedded versions. That pile of trash that your typical Linux has installed, with all the bling and colors and other annoying crap, yes, I can imagine that if that is what you are used to, and what you learned on, then a more spartan vi or feature-stripped vim is going to be annoying.
I do actually like vim integrated with shellcheck, which I use for some types of projects.