$HOME/.nvm used instead of introduced earlier NVM_TARGET.
$NVM_TARGET does not expand to the variable set in the script, so the line appears as following in your profile:
[[ -s "$NVM_TARGET/nvm.sh" ]] && . "$NVM_TARGET/nvm.sh" # This loads NVM
Ah, of course, you are right.
I was thinking, maybe the NVM_TARGET should be assigned only when it is unset. That would allow users to launch install script with NVM_TARGET being preset to location of their own... or... the install location could be the parameter of the script.