Use isso em vez disso, substitui o regex correspondido por nada.
:%s/^\[.*\]\$\s\+//
Mesmo se :g/\[.+?\]\$\s/d correspondesse ao que você queria, o d no final excluirá a linha e não a regex correspondente.
Por que isso não corresponde, você precisa escapar do + . O Vim trata isso como um literal por padrão, não como um ou mais.