Maybe because the length of an iterable is unknown. If the length of the array or array like + the offset param is beyond the length of the receiver a RangeError is thrown and no writes are performed.
With an iterable the iterator would first need to be stored in to a temp buffer to determine the length and then transferred.
There is the difference that when constructing a TypedArray buffer the size limit is implementation defined:
Whereas when calling
.set the caller must ensure the items fit within the length of the receiver. The caller passing in an iterator is potentially a sign the caller has not checked how many items they are trying to write.
I am only speculating, maybe there were some discussions on this that can be found on github or the mailing list.