It’s more secure to use a VPN to gain access to the network where you can access internally the services you need rather than expose many individual services to the open internet.
If I need to access something on my home network I’m not going to port forward everything through the firewall. I’m just going to use my vpn to remote in and then ssh to the system. Obviously keep your vpn server patched and up to date.
Honestly, one isn't better than the other. It's more of a "what can they do" if they gain access. With SSH you likely have terminal access wherever. VPN means you need to be able to talk to the service and even then it's usually just network access. Attackers have to break in further once there.
I would rather neither, but of the two I have good firewall rules internally. And failed ssh access internally is reported immediately.