It seems like having a Cell itself be Copy would kind of be a footgun. If you copied a cell, and mutated the contents of the new Cell, the original cell would remain unchanged.
It seems like that would be very unintuitive, as Cell is something which is meant to allow interior mutability.
For instance, if Cell was Copy, this code would have a very unintuitive affect:
let x = Cell::new(3);
let y = x;
y.set(5);
println!("{}", x); // 3, not 5
I think this confusing behavior is the main reason it isn't implemented. If you need to make a new cell from the inner value, just use Cell::new(cell.get())
manually. It's more explicit and doesn't have any footguns.