It's pretty intuitive once you get used to "everything is an object, or should be" philosophy of PowerShell (takes a while if you're used to a *nix shell).
The output of Get-NcVol is an array of objects. So $dr_vol inside the foreach is an object. But the ParentVolume parameter of New-NcClone doesn't take a volume object, only a string value for the name. Hence the .Name to dereference the proper attribute of the $dr_vol object.