Com o GNU sed:
sed 's/-[0-9]\+.*//' file
Saída:
myproject my-better-project my-fancy-project
Com bash:
while read -r string; do
[[ $string =~ (-[0-9]+.*) ]] && echo "${string%${BASH_REMATCH[1]*}}"
done < file
Com o GNU grep:
grep -oP '.*(?=-[0-9]+.*)' file