One way to bypass this issue :
figure
x = linspace(0,2*pi);
y = sin(x);
plot(x,y,'linewidth',2);
hold on;
bv = 0.9;
f = y>=bv;
ybv = repmat(bv,1,sum(f));
h = area([x(f);x(f)]',[ybv;y(f)-ybv]',...
'ShowBaseLine','off',...
'FaceColor','red',...
'FaceAlpha',0.2,...
'LineStyle','none');
delete(h(1));
f = y<=-0.3;
h2 = area(x(f),y(f),...
'BaseValue',-0.3,...
'ShowBaseLine','off',...
'FaceColor','green',...
'FaceAlpha',0.2,...
'LineStyle','none');
but...