File::Temp is about the secure creation of temp files. It gives you back a file handle to the opened file and the file name. If you depend solely on the file name, you could get burned; the file handle points to the actual file File::Temp created.
With File::Copy, you are normally going to be referencing files by name, so converting the name to a file handle carries different hazards.
Consider the two warnings in the context of their respective modules. They are not contradictory unless you remove them from their contexts.