C'est une question de pigments parmi eux : la chlorophylle, les caroténoïdes et les flavonoïdes.
Les fleurs possèdent un ou plusieurs de ces pigments et en quantité variable selon le type de fleurs.
Ces différents pigments ne vont pas absorber la lumière de la même façon (par exemple la chlorophylle donne une couleur verte car elle absorbe toutes les longueurs d'ondes sauf le vert, cas rare chez une fleur car la chlorophylle est souvent masquée par les autres pigments).
La couleur d'une fleur résulte donc de l'intéraction entre ces différents pigments.
"Pourquoi" proposé par : www.pourquois.com
Source de la réponse : Fab