Você deve substituir "failed" por "\"failed\"" . Deve ser:
while read status name date; do
case "$status" in
'aborted')
echo -1
;;
"\"failed\"")
echo -1
;;
'succeeded')
echo 0
;;
*) echo 0
esac
exit 0
done<st.txt
Considere também o uso de read with -r .
Há também uma maneira mais fácil de fazer o que você quer:
if [ "$(cut -d ' ' -f1 st.txt)" = "\"failed\"" ]
then
printf -- "-1\n"
fi