Politically the problem is that voters want action on climate change but aren't willing to pay any visible cost associated with that action. If you put a tax on carbon that raises the price of something by $100 then that's a political no-go. But if you create a cap and trade system that raises the price by $150 that might be politically viable. Not ideal, but one has to compromise with political realities.
I think resistance to a carbon tax is more complicated than that, at least in the U.S.. You've got a large and vocal minority that doesn't believe climate change is an issue in the first place. Of the people that are concerned about climate change, some are worried about the cost to themselves, and some are worried about the cost to others. I'm pretty well off (not wealthy, but middle-class) and I don't think a carbon tax would affect me much at all. But for some people it would be a big deal. I'm in favor of a carbon tax, but I understand the argument that it's recessive and is basically paid out disproportionally by the poor, because they spend a larger percentage of their income on gas and electricity.
I think a carbon tax offset by a tax credit for lower-income taxpayers would be a reasonable option.
I see cap-and-trade as the sort of arbitrarily-complicated system that Congress creates when they want to shake down an industry for campaign contributions. If it gets us less CO2 emissions I guess it's worth it, but still it's kind of gross.
The answer to this is for the tax to pay out to everyone as a dividend. Then voters would be in favor because some of the tax is paid by corporations but all of the money goes to individuals, so most people get back more than they pay.
On top of that, the tax would (if enacted by most countries) crush demand for fossil fuels. So then fossil fuel prices go down by, for example, half the amount of the tax, meaning that half the tax get paid by Exxon et al. But all tax money still gets paid out to individuals.