1) you created the table as Identity start at 0
2) your Identity column is a primary key.
When you load data and the Identity is generated by default, DB2 does NOT use up the values for the Identity column, they are being supplied by the load. THis is all perfectly legal, and there are numerous reasons why you want this behavior. The only drawback to this is that you can get duplicates for the Identity column, which will be rejected since it is a primary key. The workaround is to alter the starting value for the Identity to be larger than the largest value supplied in the load.
With Generated by Default, the identity value is only generated when it is not supplied in the insert. If the data for the column is supplied, DB2 uses the value supplied, and does not use up the next values it would have used if the value was not supplied.