If it’s a regular (SMB/CIFS) network share, it’s executed on the client.
If you use Git via SSH or HTTPS, Git (possibly an alternative implementation) is running on the remote side and executes hooks.
More simplified: If you have a file path set as the remote, it’s executed locally, even when it’s actually SSHFS or whatnot. Otherwise, it’s executed remotely.