Yes, it could. At some point we are making an educated guess.
getting a card with more speed capabilities than the motherboard NIC
Odds are you would get more speed with an Intel NIC over any other NIC because Intel processes the data in the NIC where other NIC cards often require the CPU to perform the data processing.
You do not need to spend a lot of money on a NIC. A very popular model (I have two myself) is EXPI9301CTBLK. I bought mine for $30 USD eleven years ago. You could purchase whichever model you desire however I would recommend you ask if it will work. I do not know of any Intel NIC that is not compatible with TrueNAS, but I do not know everything. The i210 chipset is found in many server motherboards these days, and of course intel keeps making newer models.
Again, this is just an educated guess because we have checked pretty much everything else.
Here is something else you can do to verify data transfers within your system... Make a duplicate copy of some of your data and see what happens. Hopefully all the data is transferred without issue.
WARNING !!! If you do not know what you are doing, then do not perform these steps if you do not have a copy of your data backed up. I have to assume you have some basic knowledge. While none of these steps will destroy your data, if you screw up then you could lose data.
ALSO, you need to have enough storage space to save this data.
0) Identify a dataset and directory that has a lot of small files (photos, music are common). And identify a directory which has several large files such as movies/videos. For the example here we will say dataset 'photos' is one, and dataset 'movies' is the other. Also for this example, your pool name is 'tank'.
1) Create a new dataset that you will be copying data to. I say to use a new dataset because cleanup will be very easy by just deleting the dataset. Let's call this dataset 'testarea'.
2) Now open up an SSH window or you could use the GUI Shell. I prefer the SSH window as you cannot accidentally close it as you could when using the GUI Shell.
3) Change directory to the testarea
cd /mnt/tank/testarea
and this should place you in the testarea location. Your cursor should clearly state this.
I am placing you in the destination directory because if you screwed up the command while being in the 'photos' directory, you could be making duplicates in your data area, that makes for a painful cleanup. Yes, I have done that before a long time ago, I will never forget it. I'm certain most of us have made that mistake, possibly several times.
4) Here is the first copy operation
cp -rv /mnt/tank/photos .
and you should be able to watch the files being copied.
5) If you still have the space you can copy the movies as follows...
7) Here is the copy operation, just like the last one
cp -rv /mnt/tank/movies .
and it should be copying files.
8) At any point during the copy operation you desire to stop, press CTRL+C several times, it will abort.
If all the files had no errors then transferring files internally is not the issue. This pretty much means it looks like the NIC is the issue. That is assuming your network is good and the computer you are transferring files with is not the problem.
Cleanup...
9) Let's cleanup our mess. Go back to the GUI and
delete the dataset 'testarea'. That is it!
The 'cp' command, what are we doing? The 'cp' stands of course for 'copy'. The '-r' stands for recursive so all subdirectories are also copied. The 'v' portion is for Verbose so you can see something happening, otherwise the screen stays blank during the entire process and the small files can take a long time. We all like to see things working. I guess you could listen to the hard drives making noise but most of us like a visual feedback.
Alos, if you do not have a photos or movie directory, but you have some others that have lots of files, you can use those as well. If in doubt, ASK.
Okay, my fingers are tired.
Best of luck!