Bitcoin wallets are built on top of the HD (hierarchical deterministic) framework, through which we can generate and manage different addresses. Each public address of a user's wallet can be generated from the xPub (extended public key) of that wallet. The wallet address corresponding to the subkey derived from the master key is the subaddress.
If the same address is used to receive BTC every time, then anyone can easily track all transfers to this address. Using a sub-address to receive money greatly improves this situation, providing better anonymity and privacy.