I don't see any reason (besides cutting costs) to have subcontractors handle payment of workers who work exclusively on a Costco's premises. If they are working with Costco customers and, once again, their stores, these workers should at least be getting benefits. If they get paid less, that may be determined by their duties, but it's unacceptable to subcontract workers and leave them without essential benefit packages.
Product demonstrators in Costco work for CDS, a subcontractor that pays its own employees according to the wages the employees agree to accept. As outside vendors, CDS employees know that they do not work for Costco and accept the positions with no expectations of receiving wages or benefits similar to those provided to Costco's employees. Costco pays the subcontractor, who, in turn pays its own employees. Costco is in no way responsible for the wages and benefits CDS employees receive.
If someone chooses to work for a subcontractor instead of the company itself, that person is stuck with the wages paid by the subcontractor. It's not Costco's responsibility to pay them the same as their direct employees. They already pay the subcontractor per the arrangement. Beyond that it's not up to them. If those people want to make the same amount, they need to apply to work for Costco instead of the subcontractor.
Merely handing out samples needs less training and skills than a regular Costco employee requires, therefore the fact that CDS employees make less than their counterparts and do not receive benefits is entirely fair. If the CDS employees want to make more money, they can always apply for a regular position within Costco.