Yes, I think something like that is likely. It is not possible (e.g. using top) to see which core is running a given process. In fact, all of the efficiency cores in MacOS are treated as a group, and processes assigned to the efficiency cores are routinely swapped in and out among those cores. However, there is a taskpolicy command, which (I think) can be used to assign a process to the efficiency core group. This would be used normally to improve energy efficiency, reduce heat dissipation, or to conserve battery power. Here is the output of the code (with the sleep(1) call still within the dgemm() loop).
$ taskpolicy -b a.out
Matrix multiplication benchmark
Matrix size: 1000 x 1000
Runs: 5
SYSTEM_CLOCK rate: 1000000000 counts/second
Nested DO loops
Run 1: 0.805514 seconds
Run 2: 0.843484 seconds
Run 3: 0.855970 seconds
Run 4: 0.782877 seconds
Run 5: 0.829418 seconds
Checksum = 2.5008217646E+08
Fortran MATMUL
Run 1: 0.039520 seconds
Run 2: 0.049923 seconds
Run 3: 0.042240 seconds
Run 4: 0.033030 seconds
Run 5: 0.030708 seconds
Checksum = 2.5008217646E+08
BLAS DGEMM
Run 1: 0.066994 seconds
Run 2: 0.071541 seconds
Run 3: 0.071792 seconds
Run 4: 0.071853 seconds
Run 5: 0.071933 seconds
Checksum = 2.5008217646E+08
===============================================
Average wall-clock execution times
===============================================
Nested loops : 0.823453 seconds
MATMUL : 0.039084 seconds
DGEMM : 0.070823 seconds
MATMUL speedup over loops: 21.069 x
DGEMM speedup over loops : 11.627 x
DGEMM / MATMUL ratio : 0.552 x
If you compare this to the previous output, you can see that everything has slowed down. Compared to the previous timings, the do-loop timings are now about 8x slower, the matmul/dgemm timings are now some 15x slower, and the sleep+dgemm calls are now about 2x slower. So the sleep(1) call still has a 2x effect, even though everything is now being run (I think) on just the efficiency cores.