Bitcoin's code is open source and the balances of all addresses are public, so anyone could create a fork (a new separate currency based on it, optionally starting with the same balances).
Merchants find they need to accept any popular currency their users demand. Being forked from the Bitcoin chain is beside the point.
Bitcoin Cash isn't the first new or even nearly the most popular altcoin. Ethereum has actually overtaken Bitcoin in some indicators at times, though not in number of accepting merchants. Nothing has gotten close to Bitcoin in terms of how many places accept it.
Sometimes those points give you the rights to some other associated company points without spending the original points.
Also worth noting is that sometimes these points are effectively unspendable because of availability of rewards etc. Just like how Bitcoin Cash is "worth" $700 (or whatever), but you can't actually exchange it for anything at that price.
Now you have two balances - two diverging branches with shared history. You can't spend either twice, that is, create two commits with the same parent that don't diverge again.