Let's make an overlay (image2.png) first, with 3 progressively lighter shades of grey starting with 80/255 on the left, 128/255 in the middle and 200/255 on the right:
convert -size 200x438 xc:"gray(80,80,80)" xc:gray xc:"gray(200,200,200)" +append image2.png

Assuming our starting image is this:

We can now make precisely mid-grey into semi-transparent mid-grey and overlay like this:
convert bean.jpg \( image2.png -fill "rgba(128,128,128,0.5)" -opaque gray \) -composite result.png

Or, if we want to also affect the grey(80), we can incorporate some fuzz:
convert bean.jpg \( image2.png -fill "rgba(128,128,128,0.5)" -fuzz 20% -opaque gray \) -composite result.png

Note that at Version 7 of ImageMagick, the commands changed:
Version 6 | Version 7
=================================
identify | magick identify
convert | magick
mogrify | magick mogrify
composite | magick composite
montage | magick montage
compare | magick compare
animate | magick animate
stream | magick stream
The order of parameters is also stricter, favouring:
magick [settings] INPUT [settings] [operators] OUTPUT
over:
convert [settings] [operators] INPUT [settings] [operators] OUTPUT
What I mean is that you are expected to load an image prior to applying operators to it, rather than to build up a list of operators and then load an image and hope ImageMagick remembers what you said you wanted done if you ever loaded anything.