Its not the disk speed - its samba. Samba is known to perform less good on FreeBSD than on Linux, though FTP/iSCSI/NFS/SSHFS/RSYNC and other protocols do get proper speed. So its a network issue; probably a lack of proper buffering. FreeBSD-8 might have contributed to Samba speeds i don't know; keen to test sometime. Before FreeBSD 7 the TCP buffers where static so without tuning it would be very bad performance on gigabit networks with Samba for example, so all stable FreeNAS releases are affected by this issue, since they still run on FreeBSD 6.X.
Its easy to get > 100MB/s disk speeds with FreeNAS/FreeBSD. Two disks in RAID0 or three disks in RAID5 is all you need, both read and write. If you do alot of small file transfers / working with applications on your NAS then throughput isn't all that counts; but you have to take IOps into account.
SMB/CIFS is probably a bad protocol for file transfer, it has a long history of performance issues, especially on newer systems. Microsoft is lagging in alot of areas where FreeBSD has strong cards. For example, you can use link aggregation to create a 2GBps virtual NIC from two 1GBps NICs with any network driver; while in Windows this only works for a few vendors which have hardware or driver support. Trafic shaping via altQ comes to mind which is useful if you are going to use it as a router. And SMP performance on FreeBSD is really good; where windows kernel is single threaded i believe; this can be seen when disk I/O is bottlenecked by CPU like when choosing 512 byte transfer size, while 64KiB/128KiB usually gives best performance. On a dualcore system, you would see only one core fully utilized, or 50% CPU usage. This means the storage backend in the operating system is single threaded. All current windows also ship with parts from FreeBSD, and Hotmail ran on FreeBSD quite a long time. FreeBSD lacks in PR/marketing and getting in the spot lights, but it isn't old and dusty; its actively being worked on and i'm impressed by the progress. Both the MySQL and Linux kernel projects have benefitted from FreeBSD inventions, and FreeBSD ported many good inventions by other to its own; although it cannot borrow code from GPL-sources so for Linux its a one-way street.
FYI, a software RAID5 config may well beat hardware RAID. Ive seen scores beating Areca in throughput (480MB/s versus 420MB/s write in RAID5) though you need sufficient disks for that in RAID5. Areca does alot of efficient buffering and I/O reordering that really speeds up random I/O and thus helps in realistic situations.
But all that brute force is just alot of speed you are not going to use, i'd rather sacrifise some in order to run ZFS. Where i get checksums of all my files, duplicate metadata and if i choose duplicate files as well. For example: setting copies=2 on a directory will cause two copies of each file in that directory, hidden from the user. If one copy is lost due to corruption or device inaccessibility, the copy is used to restore the file automatically (self-healing) without you having to bother or hindered. You can see which disks are showing corruption or read/write issues, which makes it very easy to use and maintain also.
Back to that copies=2, that would mean when running ZFS on a stripe (RAID-0) config of two disks, you would have a RAID-1 essentially; even better because its protected by corruption; corruption from one disk can't spread to the other like what happens with ordinary RAID-1 which knows nothing about the filesystem.
Most of the goodness of ZFS comes from the fact that its both a filesystem and a RAID engine, a unique piece of software and a very powerful combination of reliable, fast and flexible storage. I encourange everyone to try it, for example in a VM; all the software is free, you just need to grab it.
Since i'm very much interested in ZFS and have some experience in this, anyone wanting to try this and in need of some assistance can PM me anytime for a live chat.