Disks even of the same model, even from the same batch can vary in size slightly. This may be because the disks are actually slighly different but the manufacturer kept the same model number, or because drives come from the factory with some sectors already marked as unusable. A drive that had more bad sectors but is otherwise fine will show a smaller number of usable blocks. The drive firmware hides the bad sectors from you and presents a slightly smaller drive.
Its also possible that the smaller drive has a host protected area (HPA) setup. This reserves part of the drive, completely hiding it from the OS, to store things like BIOS images or system recovery. This is less likely if its a brand new drive. It can be removed, though I'm not sure what tools you would use on freebsd to do so.
The solution is not to have the array extend to quite the entire size of the disk, so that replacement drives will work even if they are a few KB smaller. Some RIAD setups do this automatically, others leave the decision up to the administrator.
Umfortunately since all the data is on the larger disk already you will either need to shrink it to fit or start fresh.