To begin with there is no direct alternatives to "AT TIME ZONE".It is the combination of features provided by two functions in earlier versions viz "SWITCHOFFSET" and "TODATETIMEOFFSET"
With the SWITCHOFFSET function, you can return an input DATETIMEOFFSET value in a
requested offset term.It alters the existing DateTime value and the offset based on the second parameter(If provided DateTime is offset inspecific then it is considered as "0:00" offset).
With the TODATETIMEOFFSET,you can make an offset unaware DateTime to offset aware data. It only sets the offset to a value specified in the second parameter.
Now "AT TIME ZONE" this provides the good of both the above ones. As mentioned by Microsoft AT TIME ZONE,It Alters DateTime and Offset only if provided value is offset aware, else only offset is added.
SELECT
SWITCHOFFSET('20130212 14:00:00.0000000 -08:00', '-05:00') AS
[SWITCHOFFSET_FROMOffsetAware],
SWITCHOFFSET('20130212 14:00:00.00', '-05:00') AS
[SWITCHOFFSET_FROMOffsetUnAware],
TODATETIMEOFFSET('20130212 14:00:00.0000000 -08:00', '-05:00') AS
[TODATETIMEOFFSET_FROMOffsetAware],
TODATETIMEOFFSET('20130212 14:00:00.00', '-05:00') AS
[TODATETIMEOFFSET_FROMOffsetUnAware],
CAST('20130212 14:00:00.0000000 -08:00' as DATETIMEoffset)
AT TIME ZONE 'Easter Island Standard Time' as [TIMEZONE_FROMOffsetAware],
CAST('20130212 14:00:00' as DATETIME)
AT TIME ZONE 'Easter Island Standard Time' as [TIMEZONE_FROMOffsetUnAware];
See SqlFiddle
Now it should be seen that there is no direct alternative but, you could redo on case to case basis whether you should substitute "SWITCHOFFSET" or "TODATETIMEOFFSET" functions in place of "AT TIME ZONE" Hint.
To find an offset equivalent for time zone name use the following query(works with SQL 2014 or use fiddle)
select * from sys.time_zone_info