Você obtém saída em branco para o primeiro registro, porque isso já foi lido e analisado quando você definiu FS .
Você deve definir o separador de campo antes de ler e analisar o registro de entrada. Então, ou
awk 'BEGIN{ FS = "-" }{print $2}'
ou
awk -F'-' '{print $2}'
Como alternativa, você pode forçar o awk a analisar novamente o registro atual depois de definir FS :
awk '{FS = "-"; $0 = $0; print $2}'
Em relação ao seu pipeline, grep não é necessário, awk também pode fazer essa parte:
ls | awk -F'-' '/some-part-of-file/{print $2}'