Это относительно легко сделать с векторизацией matlab без каких-либо петель.
% Логический вектор обмена (1, если вам нужно поменять местами эту строку, 0 в противном случае)
swap_logical = ( ismember(D(:,1),d) | ismember(D(:,2),d) );
% Векторизованный обмен на основе булианского свопа.
Dnew = swap_logical.*D(:,2:-1:1) + ~swap_logical.*D;