In this case, parfor doesn't understand the fact that you're performing independent reductions on the rows of b. You can convince it by performing the update to the whole of b all at once, like so:
m=3; n=5;
b=zeros(m,2);
parfor i=1:n
  a=[i i+1];
  btmp = zeros(m,2);
  for j=1:m
    btmp(j,:) = j*a;
  end
  b = b + btmp;
end


