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...



