NFS, like SMB (Windows) or Samba (Linux) maintains a file system. It keeps track of the various files, to include security (who owns a given file or folder, or can read that file or folder), folders, size of files, etc. When another computer talks to it, that client computer requests a list of files, the NFS server provides the list of files, and allows the client to request individual files for reading or writing. NFS, therefore, can allow multiple clients to share access to these files that it is hosting.
iSCSI may be using a huge file as a virtual hard disk, or exposing an actual physical disk. It just serves up blocks of data, just like blocks of data are stored on the actual disk (i.e. 512 bytes or 4k byte chunks). When a client computer attaches via an iSCSI Initiator that client has exclusive access to the disk. The client is responsible for dividing up or grouping up those blocks of data into files, and the client itself determines whether it is a ZFS or NTFS or whatever file system.
Consequently, an iSCSI server would be faster because it doesn't have as much work to do. It would be limited to only 1 client at a time connecting to that Target disk, and this would usually be fairly permanent. iSCSI clients would not normally be connecting/disconnecting a lot, unless the client was a laptop being moved away remotely. The client, in this case, would be doing more work, because all of the file system work (security, keeping track of which data block belongs to which file) has to be done by the client.