Is there any real difference in pruning vlans vs. allowing which vlans over the trunk manually?
It is not only the root switch that knows what ports to prune.
VTP enabled switches exchange prune messages.
When a switch on a leaf of a spanning tree has no users on a particular vlan, it sends prune request messages over its trunk ports for those vlans.
Upstream switches prune the requested vlans on the ports where the prune requests were received.
On the other hand, when users reappear on a particular vlan, that vlan is added back to the vlan-list of the respective ports after exchanging the respective VTP messages.
AS Istvan notes, the main difference is VTP pruning does not limit the STP diameter across the switches whereas manually the vlan off a trunk limits it's diameter.
The other aspect is a security issue. By manually allowing on the vlans you want over a trunk port you have far more control over which vlans can be used on which switches. With VTP pruning all it needs is for one port in a vlan to become active and that vlan is then available on the switch.