Not necessarily. It can be only the different cluster size between the devices.
Some words more:
When you copy a file from a device to another (from an HDD to another) you have to consider even the different cluster sizes. Without entering too deep inside the zoo of file system type it's enough to say here that a partition is organized as an arithmetic exercise book, the bytes are grouped in sector in a similar way in which in the exercise book you can say that the squares are grouped in pages. The index of the free and used space (FAT) is made considering only those groups. The sectors can be or free or full, tertium non datur.
So a file has a size for the effective bytes used (if it is a text file and contains only the word "Hi" it will be 2Bytes), and a size for space used on the device (if a sector is of 4kB it will be a multiple of 4kB, if on another device the sector is of 512 bytes it will be a multiple of 512B).
On the other side it's possible that copying a large number of files you can have errors in writing or reading operations, you can have no right to access to the some file, or some file can be deleted in the meanwhile if the operation is long and the file is a temporary one.
This is usually notified by the program you are using with some error message and with an error exit code. Under Linux for example, you can catch the exit code by writing in the shell
echo $?. If it returns a value different from 0 it means error. If you haven't catch those messages in advance, you have to check it a posteriori.
After that you copied a large number of files you can check, quickly, if the number of the files and the total effective bytes count matches. A more effective check can be done computing and comparing the md5sum for each file on both the copies. If this match all the contents are Ok. Least you may want to check the permission and date.
Often is cosy to rely on specific tools as
rsync for Linux,
robocopy for Windows, or one of the many many other tools available.