In the US, almost every major retailer issues their own branded credit card, and they offer financial incentives for using that card at their stores.
As a card issuer, they get a cut of the interchange fees whenever you shop with their card, even if you're shopping at other stores. That provides both a discount on their own payment processing costs (some of the fees they pay their processors come back to them when their own branded card was used), and an additional revenue stream unrelated to their own store sales.
To entice consumers to sign up for retailer-branded cards, they offer significant discounts or rewards on purchases at that retailer.
Banks can offer rewards programs for use of their branded credit cards as well, but their reward programs can never pay out as much as a retailer-branded rewards program, because the retailer can cut into their profit margin to finance it while the bank's program has to be financed entirely through interchange fees.
It's perfectly rational to sign up for an Amazon card that offers 5% off your Amazon purchases if you shop there often. It's similarly rational to sign up for a similar program at each retailer you shop with often. So a rational consumer can end up holding a number of credit cards, some of them issued by their bank, some issued by retailers, simply in order to minimize their bills.
Beyond all that, there's also people that churn through cards in order to earn rewards for opening new accounts, or whom carry large debts and transfer balances to new cards with introductory 0% interest rates periodically to avoid accruing interest on their debt, essentially using new cards as loan extensions.