если b и a это примитивные типы, типа числа, строки, булевы выражения, то разница нет. а если b и a это списки или более сложные структуры данных, то copy честно создаст новый объект и скопирует, а b = a значит, что b станет как бы синонимом a - область в памяти будет одна, а ссылок на неё две