You could modify only the text, but that is bound to wreak havok on the display:
plot(rand(10,5));
l_str = {'A','B','C','D','E'};
lH = legend(l_str);
pos_to_change = 4;
allH = get(lH,'children');
set(allH(numel(allH) - ( (pos_to_change - 1) * 3 ) ),'String','yourText');
It would probably be easier to update the entire legend:
new_str = l_str;
new_str(4) = {'yourText'};
legend(new_str);