Both models are common and they're aimed at different customers.
Per-listing pricing, roughly $100 to $400 for a marketing package, suits an agent doing six or eight listings a year. They pay when they have a listing and nothing when they don't. The provider gets uneven revenue and spends a lot of time on quoting and onboarding for each job.
Monthly retainers, commonly $500 to $2,500, suit an agent or small team doing enough volume that per-listing billing gets annoying, and who also want ongoing work: email newsletters, social calendar, website updates, farming postcards for a neighborhood. The retainer buys availability as much as output. That's why the deliverable list can look identical to the $150 package and cost eight times more.
On whether the retainer is a real business: look at what happens in a slow month. A provider who has thought about it will have a defined monthly scope that gets delivered whether or not the agent has a new listing, because that's the part the agent is actually paying for. A provider who only produces when a listing appears has a per-listing business with a subscription label on it, and those churn hard the first time an agent has two quiet months.
The part that catches people sizing this up: agent marketing budgets got tighter with commission pressure, and retainers are the easiest line for an agent to cut. Providers who survive tend to be tied into something the agent can't pause, like their website or their database, rather than only producing pretty things.