So you have 2 CPUs, 40GB RAM, and your HBA is passed through as a PCI device; that's a good start.
What's the configuration of the underlying pool with the SMB share? If you're copying from another VM over SMB that's attached to the same vSwitch, you'll effectively be copying at the maximum speed of your system (assuming VMXNET drivers are working) rather than any simulated line-speed, so you could easily be hitting write throttling here whereas with bare metal the line speed might be a less intrusive bottleneck first.
I also have AIO where FreeNAS runs inside ESXi 6.7. The only difference I see is that I have "Latency Sensitivity" set to "High" in FreeNAS VM advanced options. In my case I have 12GB of RAM and 2x3,5GHz cores assigned to FreeNAS. On Win10 VM running the same ESXi host I easily get 3 Gbps SMB transfers. On bare metal Windows 10 client - 1Gbe network is bottleneck.
In my case main role of FreeNAS is to share back storage via ISCSI to ESXi host. This is why I configured "Latency Sensitivity"="High". With such settings I never had performace problems neither with ISCSI nor with SMB.