VSCode では/etc/passwdの内容よりsettings.jsonの方が優先されるよう(少なくとも僕の環境では)です。
それぞれ環境に合わせて以下を設定してあげましょう。
{
"terminal.integrated.shell.linux": "/usr/bin/fish",
"terminal.integrated.shell.osx": "/usr/local/bin/fish",
"terminal.integrated.shell.windows": "..."
}値は/etc/shellsで表示されるどれかを設定します。