If the array is very large, you want to avoid making a copy of all its elements, which is what happens if you use drop, slice etc. Instead, asList and subList provide a view into the original array without making any copies:
for(num in nums.asList().subList(1, nums.size))
println(num)
The Kotlin library documentation doesn't explicitly say that drop and slice create copies, but it explicitly says that asList and subList don't. For example compare these two descriptions:
drop: "Returns a list containing all elements except..."
slice: "Returns a list containing elements at indices in..."
asList: "Returns a List that wraps the original array."
subList: "Returns a view of the portion of this list between..."
You can also click on the "source" links in the above docs to see whether a certain method copies or returns a view of the original.