I guess because it’s interfacing with the Lightning network, and fees can be variable.
So in my example above, I had a 23 sat token. After sending 20 sats to a Lightning address, 2 sats were taken for network fees and I got a 1 sat change token.
Hope that helps.