I was able to figure out the answer myself. The simple solution is to use Annotations:
Specifically a rectance annotation:
This has a property called FaceAlpha which changes its transparency and these annotations can be placed on uipanels of figures. Below is the code that works as I desire:
F = figure('menubar','none','numbertitle','off','Color','w');
P = uipanel('Parent',F,'BorderType','none','BackgroundColor','g',...
'Units','normalized','Position',[0 0 1 1]);
A = axes('Parent',P,'GridColorMode','manual','GridColor','k',...
'XGrid','on','YGrid','on','GridLineStyle','--','NextPlot',...
'add','Units','normalized','Position',[0 0 1 1]);
T = 1:1:10;
V = 10*rand(1,10);
plot(T,V,'Parent',A,'Color','r');
An = annotation(P,'rectangle',[0.25 0.25 0.5 0.5],'FaceColor','b',...
'FaceAlpha',0.5,'LineStyle','none');
And the outcome of this code is:
This is exactly what I need, a semi-transparent thing on top of axis to signify the area of plot that will be analysed.