Here's one possibility:
The update option works against your found set in the target table at the time of import. If you have only a few records in your found set, you may find that many records you thought would match and update were instead added as new records--producing your larger than expected number of records. In most cases, you will want to do a Show All Records before importing to avoid this issue.
Depending on the data in the fields specified as "match" fields for the "update matching" set up, records that look like they should match may not actually match and thus are added as new records. A damaged field index can cause this, so can invisible characters present in the text field of one file and not the other..