GETDATE() returns the datetime of the server executed against. The AT TIME ZONE clause tells SQL that the datetime returned from GETDATE() is at the time zone US Mountain Standard Time. As the question states, the correct answer is "2020-03-30 16:34 -07:00" However, GETUTCDATE() returns UTC datetime. With the AT TIME ZONE clause, this datetime is returned "2020-03-30 22:34 -07:00", which is the incorrect time.
See the code block below. If you execute, you will note the AtTimeZone column will have the same time value as the datetime column.
('GETDATE()', GETDATE(), GETDATE() AT TIME ZONE 'US Mountain Standard Time')
, ('GETUTCDATE()', GETUTCDATE(), GETUTCDATE() AT TIME ZONE 'US Mountain Standard Time')
) AS t([Function], [DateTime], [AtTimeZone])
If you had GETUTCDATE() AT TIME ZONE UTC AT TIME ZONE "US Mountain Standard Time", you would receive the correct time.