Why can't you copy a Material component?

Is there something special I have to do to be able to copy a material component? Changing tons and tons of shader values all at once is becoming tedious…

A Material is not a component, it’s an asset. cjdev explained quite clearly. If you want to render objects with a single material and all of the object varies a bit in its shader values , consider using MaterialPropertyBlock to apply these values.
By using MPB, you can render all of the objects with only one material assets and possibly benefiting from unity’s batching optimization.

To duplicate, Ctrl+D works for you.

To copy properties from a material to existing others, you can try Component Clipboard.

To copy by script, this API might be right.