Hi
Your PC (192.168.3.191) is establishing the data connection for the file download ("test.bin").
The MSS is 1460 and the PC's TCP Rx window size is 64k.
The embedded stack's TCP Rx windows size is 1460 bytes (although this is not relevant for a download).
The embedded system takes 300ms to access the file and start downloading the data in packets of 1460 bytes.
The PC acknowledges each packet after a delay of about 40ms (delayed acks - see "Nagel algorithm" for reason).
Each time there is a TCP ack the embedded system requires about 20..40ms to prepare and send the next packet of 1460 bytes.

Therefore the throughput during the download is around 1460 bytes each 60..80ms and thus around 20kBytes/s.
Therefore the embedded system is sending one frame and waiting for an ack before sending the next (un-buffered TCP with low data rate). This can be improved by disabling the Nagel algorithm in the TCP/IP stack of the PC so that it doesn't wait 40ms to ACK and will likely increase the throughput to maybe 60kByte/s since there looks also to be a subsequent limit due to slow data retrieval or response time.
Here is the comparison with my download:

The difference is that buffered TCP is in operation and so not just one frame is sent before receiving an ACK but multiple ones (standard buffered TCP operation, which breaks the Nagel delay and thus ensures fast transmission. The PC will ack as soon as two frames have been received (about 50us delay).
The uTasker stack and file system are faster than the standard ones so there is also only a few hundred us delays involved rather than the 20..40ms delays in order to obtain 800kBytes/s throughput.
Some stacks, or FTP implementations, will use non-buffered operation for simplicity (and easier reliability) therefore you may find that you need to modify the FTP server, or you may find a TCP socket setting that allows the socket to do buffered TCP so that the FTP server can 'queue' more data. Once you have done that I expect you will achieve 80..100kBytes/s.
Note that the present FTP behavior will become slower in the Internet when additional round-trip delay is encounter and TCP buffering also solves this by allowing multiple frames to be sent without requiring an ack to each.
Regards
Mark