No VBS, você precisa escapar de caracteres de aspas duplas com um segundo caracter de aspas duplas.
Então mude
>>%vbs% echo oShellLink.IconLocation = "%1, 0"
para
>>%vbs% echo oShellLink.IconLocation = ""%1", 0"
Que no arquivo VBS lhe dará
oShellLink.IconLocation = """C:\WINDOWS\NOTEPAD.exe"", 0"
Que analisa "C:\WINDOWS\NOTEPAD.exe", 0
antes de ser atribuído a .IconLocation.
Editar (informações adicionais):
Basicamente, o erro é lançado se você colocar uma cotação não escapada na sequência (não literal).
Isso ocorre porque o analisador acha que o caractere de aspas é o marcador final da string, o que deixa o lixo (os caracteres restantes) após ele.
Portanto, como a citação de fechamento deve ser o marcador "fim da instrução", mas ela encontra caracteres após a citação de fechamento, há um erro porque é "Esperado" o "Fim da declaração".
O caminho funciona com e sem as aspas com escape por causa da maneira como .IconLocation analisa de forma inteligente a lista de argumentos que você está alimentando como uma única String.