Do a PROC CONTENTS on each of the datasets and see what is different.
SAS datasets are direct access files when stored. The from. dataset may have had a number of records deleted in place. When you go from from.temp1 to to.temp1 libraries, the copy is sequential and any "extra" space is given back to the OS.
Another possibility is that there are indices on from.temp1 and not on to.temp1.
Being both libnames on the same physical storage, and as already stated, this is probably the physical elimination of deleted rows.
Copying a table through a DATA/SET statement is rather a row by row copy procedure than an actually copying the file. The destination tables gets reorganized and so, previously deleted row are skipped in the copy procedure.
Just do the same with the original table, over itself (DATA ORIGINAL; SET ORIGINAL; RUN; /* make sure backup the table first */), you should get the 200K size also.
Since you are not explicitly using the COMPRESS option, and unless its default value was set to YES AFTER the original dataset was created, the copied dataset maybe compressed. Just issue the following to see the current value of the COMPRESS option (default is NO):