If everything is being manually created, they're about the same. However, import is the choice when the course shells are being created by someone/something else. For example, all of our course shells are being created by our SIS import - so the course exists, with all enrollments, but there's no content. The instructor can then use the import function to grab the content they used for the course in the last semester.

I only use the "Copy a course" when I need to duplicate a course's content, such as to create a backup copy or to test something.

If everything is being manually created, they're about the same. However, import is the choice when the course shells are being created by someone/something else. For example, all of our course shells are being created by our SIS import - so the course exists, with all enrollments, but there's no content. The instructor can then use the import function to grab the content they used for the course in the last semester.

I only use the "Copy a course" when I need to duplicate a course's content, such as to create a backup copy or to test something.