Green soldermask is often the cheapest because it allows for pooling.
Except for Oshpark. With Oshpark you can choose any color as long as it's purple.
Black soldermask is a nuisance to see tracks on. Especially with matte black.
For the rest, it's just aesthetics, except maybe when you go full color, maybe you can get something functional out of a full color silkscreen. There is at least one manufacturer that can do this.
For other manufacturers, they will refuse your PCB if silkscreen covers more then 30% or so of the PCB area, I guess they think the ink is more expensive then their customers are willing to pay for.
Edit: (as response to Psi below) You can also have a look at
https://pcbshopper.com/ for price information. By default it has a "least expensive color" price