The resourcepool parameter does not take inputs such as Business Critical, see my simple code below and error.
New-VM -Name ibgkbapp01 -Template rhel5u5-64-v7 -Datastore vmfs_duprb1_ns960_0650_20 -ResourcePool Business Critical
The Error :
The error message you got is clear, it says "expects a single value".
It looks as if you have at least 2 resource pools with the name "Business Critical" in your vSphere environment.
By passing a specific cluster to the Get-ResourcePool cmdlet, you are in fact providing the Location parameter through the pipeline.
That way the cmdlet could return 1 specific resource pool.
You probably have more than one cluster with a resourcepool called "Business Critical". The command in your first post returned all these resourcepools and didn't know where to put the new VM. The command in your last post selects the "Business Critical" resourcepool in the right cluster.
(Get-Cluster duprb1| Get-ResourcePool -Name "Business Critical")
returns only one resourcepool and your command is happy.