The Get-VMHost cmdlet retrieves each ESX(i) server from the vCenter to which you are connected.
That object is passed though the pipeline to the Select-Object cmdlet, which allows us to extract specific properties from the object.
In this case the information you want to retrieve is not directly available in the .Net object returned by Get-VMHost.
But it is available in the server-side HostSystem object.
Through the ExtensionData property we have access to that HostSystem object.
Finally it a matter of dividing the total number of cores by the number of processor blocks.
That is done in a so-called calculated property (the @{N="...";E={}} construct, where N stands for Name and E for Expression) on the Select-Object cmdlet.
I hope this makes it a bit clearer.