What can cause higher CPU time and duration for a given set of queries in trace(s) ran on two separate environments?
That production has more CPUs does not matter when you use MaxDOP 1. Then only CPU Clock cycle matters. With many CPUs, you often get lower 1.x GHz clock cycle. A higher clock cycle on your QA could explain some of the difference.
If the database cannot fit into memory, then your hard disk speed difference sounds as if it alone can explain the different duration time.
May I recommend that you install the First Responder Kit from Brent Ozar?
https://www.brentozar.com/first-aid/
This will alert you to the most obvious problems.