NFS is a NAS (network attached storage) which is a file storage attached over the NFS network protocol. This means that there is a filesystem on a remote server that serves files over the network. This is perfect for such use cases like backups, isos, templates when you use it to read or write a file sequentially. Virtual Machines can also be hosted on nfs storage because virtual machine disk image can be stored in a file.
However when using virtual machines this way there will be a lot of random access to that file (virtual machine will occasionaly read and write here and there instead of grabbing the whole file). For that use a block storage is optimal. But if the virtual machine is not IO intensive (it's not a database server or anything intensive) then this will work on NFS share. And it will work for the large majority of virtual machines.
To make things even better you can configure jumbo frames on the network path that is used in between the nfs server and PVE host. This means that MTU (maximum transfer unit) is 9000 instead of default 1500 bytes. Less IP packet fragmentation causes that you can get more performance from NFS storage just by changing just one network setting. MTU has to be set on the NFS server, the pve server and all the switches in between (the switch must support it - most of the managed enterprise switches do).