I've verified Emmet working when Node is installed installed the following ways:
- from the Node.js installer package, installed in /usr/local/bin
- from Homebrew, installed in /usr/local/bin
- from Homebrew on Apple Silicon, installed in /usr/local/bin
Once it's installed that way, I'd personally recommend installing Emmet globally (e.g., "node install -g emmet").
The method that BBEdit uses to find node should work whenever node is installed on your shell path as BBEdit sees it. That is not necessarily how your shell prompt sees it! Path modifications that are set in .zshenv or .zprofile (or your shell's equivalents) should work, but if they're set in .zshrc (or equivalent), I don't think they will.
Installing it via nvm is therefore... tricky, because it's doing a lot of interactive path trickery with your shell to work. If you really want to try to have it work solely with nvm you might try ensuring you've (a) added the nvm initialization lines to .zshenv or .zprofile, NOT .zshrc; (b) set a global default version of node with "nvm alias default node"; (c) ensured that Emmet is installed in that global default version.
I don't know if that will work, because I haven't tested it, and even if it does work, it means you'll need to reinstall Emmet every time you change the global default.
tl;dr: I am sure nvm is lovely and kind to small children and animals, but maybe install a system version of node globally and stick Emmet in that.