the fragments are most likely caused by NAT. Have a look at the explanantion below. The 'reassembly timeout' value, by the way, is not a dynamic value, but a value you set under the interface, with the command 'ip virtual-reassembly in timeout'. The default is 3...
--> Virtual fragmentation reassembly (VFR) is automatically enabled by some features (such as NAT, Cisco IOS XE Firewall, IPSec) to get Layer 4 or Layer 7 information. VFR enables the Cisco IOS XE Firewall to create appropriate dynamic access control lists (ACLs) to protect the network from various fragmentation attacks.
Most non-initial fragments do not have the Layer 4 header because it usually travels with the initial fragments (except in the case of micro-fragmentation and tiny fragments). Due to this, some features (such as NAT, Cisco IOS XE Firewall, IPSec) are unable to gather port information from the packet. These features may need to inspect the Layer 7 payload, for which the fragments need to be reassembled, and then refragmented later.
So, if you disable NAT on the interface, the count will probably drop to zero.