Bitcoin Cash has the same hard limit as Bitcoin, almost 21 million. In terms of supply, it is identical to Bitcoin, with the same halving of supply, at the same block heights.
However, there is a difference in the difficulty adjustment algorithm. Difficulty is the variable that ensures that there is one block mined every 10 minutes. It increases as the number of miners/hashpower in the network increases. In Bitcoin, the difficulty is adjusted every 2016 blocks, based on how long it took for those 2016 blocks to get mined. So every 2 weeks (approximately) the difficulty is adjusted based on how much hashpower was added to the network in that time.
Initially, Bitcoin cash had the same difficulty adjustment algorithm with one addition, which was called Emergency Difficulty Adjustement (EDA). If no blocks had been found for 12 hours, then the difficulty would reduce by 20%. This was put in place to prevent the chain from stagnating and dying due to lack of hashpower as it was unknown as to how much support BCH would receive from miners.
This algorithm, however, was susceptible to being gamed by the miners. Miners would intentionally abandon mining BCH for a period of time. This would trigger EDA multiple times, and then when the difficulty was low enough to be profitable, they would start mining BCH, and mine 2016 blocks in 3-4 days (instead of 2 weeks). After 2016 low-difficulty blocks are mined, the difficulty would be readjusted to a sufficiently high amount, and the miners would abandon the BCH chain again.
If you compare the supply of BTC and BCH, in the 4 months since the fork, there is a difference in approximately 120,000 coins. This was problematic as BCH blocks were no longer predictable. The block times varied from 12+ hours to less than a minute.
On November 13th, Bitcoin Cash underwent a hard fork to change the difficulty adjustment algorithm. Now the difficulty is readjusted every block based on the previous 144 blocks, to try and keep block times as close to 10 minutes as possible.