It seems to me that gawk might be easier for this job.
using FPAT can simplify the problem:
awk -v FPAT="- .*$" 'sub(/^- /,"",$1)' file
with your data:
kent$ echo "Adam James - Welcome Home.txt Mike & Harry - One Upon - A Time.txt William-Kent - Prince & The Frog.txt"|awk -v FPAT="- .*$" 'sub(/^- /,"",$1)' Welcome Home.txt One Upon - A Time.txt Prince & The Frog.txt
source share