This is the version I ended up with, seems to do exactly what I had in mind:
\startuniqueMPgraphic{mpshadow}
% BodyFontSize should be the current font size of/in the frame
mw := BodyFontSize/3;
ox := 3 ; % offset x
oy := 2 ; % offset y
bx := 1.7mw ; % bleed x (height of the shadow)
by := 3mw ; % bleed y (width of the shadow)
rx := 2mw ; % max. corner radius x
ry := 1mw ; % max. corner radius y
steps := 10 ; % number of shadow layers, 10 is a good value
hue := 0.03 ; % 0.02 is a good value
ycorr := 1mw ; % difference between overlay height and shadow height
for step = 1 upto steps:
part := (step-1)/steps;
xstep := bx * part ; % current part of bleed
ystep := by * part ;
crx := (rx + rx*part)/2; % current radius
cry := (ry + ry*part)/2;
% points of the rounded rectangle
xa := -xstep + ox;
xb := -xstep + ox + crx;
xc := xstep + ox - crx + \overlaywidth;
xd := xstep + ox + \overlaywidth;
ya := -ystep + ycorr + oy;
yb := -ystep + ycorr + oy + cry;
yc := ystep - ycorr + oy - cry + \overlayheight;
yd := ystep - ycorr + oy + \overlayheight;
fill (xb, ya)---
(xc, ya)...
(xd, yb)---
(xd, yc)...
(xc, yd)---
(xb, yd)...
(xa, yc)---
(xa, yb)...cycle
withcolor transparent(1, hue, black) ;
endfor;
setbounds currentpicture to OverlayBox ;
\stopuniqueMPgraphic
\defineoverlay[shadow][\useMPgraphic{mpshadow}]
\setupexternalfigures[location=default]
\starttext
\startplacefigure
[title={MyTitle.}]
\externalfigure[mill]
\stopplacefigure
\blank[2em]
\startplacefigure
[title={MyTitle.}]
\externalfigure[mill][background=shadow]
\stopplacefigure
\stoptext