It is tempting to think that plastic would be cheaper than steel, and that metal would be superior to plastic, because that is usually how it is.
But in this case, for fuel tanks, though it seems counterintuitive at first, the opposite is true.
I was there when we made the transition at Toyota, I work in the same department with them and went through the same kind of Scooby Doo "Haruuu?" when confronted with the facts.
The cost of a steel fuel tank was significantly less than one of these modern, space-age, NASA tech molded fuel tanks. Heck, the resin they are molded out of has something like 7 different layers, made up of different materials, each performing a specific role. Setting up the tooling to mold a new one is unbelievably difficult and process intensive.
Steel would have cost less, and been far easier to produce. Toyota made the steel ones all in-house, locally at each plant, making them insanely cheap. But, even out of stainless they couldn't meet the regulations so were all phased out and higher cost, molded resin tanks replaced them.
As a side benefit, the plastic tanks are slightly more burst-proof on impact (they can deform further before beginning to split).
Getting back to the charcoal canister, you all are right: they are plastic, and have been made out of plastic since 1971 when they were first adopted, simply because they are cheaper to make that way. Originally, they were located in the engine compartment, well out of harm's way. It is only recently (like, since '05 or so) that they grew in size (to meet the LEVII regulations) and had to be moved to be near the fuel tank due to packaging limitations.
Of course, none of this is unique to Toyota, the whole industry has adopted similar tech to meet the ever more challenging regulations to deal with pollution.
Norm (Toyota engineer for 28 years) Kerr