An Azure service for ingesting, preparing, and transforming data at scale.
@chrisw there is one more solution, not sure why I didn't think of it before.
In Both the source Excel and sink CSV datasets, disable "First row as header". In the copy activity, leave the mapping empty. Leave the CSV dataset schema empty.
Since the first row is not treated as header in either side, the first row gets treated as data. Since the "Quote all text" works on data, the first row with its comma gets quoted correctly.
Before you worry about there not being headers, recall that visually, there is nothing to distinguish header from text. Headers are an artifact of intent in reading/writing data.