I encountered this issue recently myself. It has to do with the permissions and relative positions in the role hierarchy of the users that are involved.
When a user obtains View access (which is included, of course, with record ownership) on an Opportunity, they also receive an Implicit Parent Share (read only) to the Opportunity's Account. What's going on here is that the Opportunity Owner has full permissions on the Opportunity, but does not have permission to share the parent Account. Salesforce therefore prohibits the ownership transfer, because the owner doesn't have the right to create that Implicit Parent Share.
The System Administrator has Modify All Data and is likely at the top of the role hierarchy, so he/she has permission to perform this share. The Opportunity's owner would need to be above the Account owner in the role hierarchy, or have similar Modify All permissions, to allow the transfer to go through.
The workaround is for the Account owner, or another user who has full permissions on the Account, to either manually share the Account to the new Opportunity owner or to add that user to the Account Team. The ownership transfer will then go through.