As far as my knowledge of Functional Programming goes, the map operator can make use of multiple threads and calculate the values faster as compared to forEach which processes one value at a time.
I am not sure, but this talk by Anjana Vakil covers this very point that you have doubts about.