There is no difference in speed, and no difference in how the processing takes place.
Differences are in the flexibility when using more than one incoming SAS data set. Examples:
data both;
merge a b;
by state;
where gender='M';
run;
Now the WHERE statement applies to both incoming data sets, so GENDER must appear in both. Compare that with:
data both;
merge a (where=(gender='M')) b (where=(age > 21));
by state;
run;
By using WHERE as a data set option, separate conditions can be applied to each incoming DATA set. A stand-alone WHERE statement would not be possible to accomplish the same task.