for most use cases they're functionally the same. the biggest difference for me is that nitrokey doesn't support doing hmac-sha1 challenge, so i can't use the nitrokey with keepassxc.
fido, gpg, piv all work perfectly