Getting VLF info with least privileged to run across multiple servers of different version
I don't think you'll find a way prior to 2016.
As of 2016, you can use the DMV sys.dm_db_log_info instead. In fact, your script does just that, checks for the version and uses one or the other command (the other of course being DBCC LOGINFO, which requires sysadmin).
For sys.dm_db_log_info you can just GRANT VIEW SERVER STATE permission.