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.