How Can the Same Query in Two Nearly Identical Instances Generate Two Different Execution Plans?
Execution plans (actual, not estimated) need to be added to the Q for a definitive answer but...


  How Can the Same Query in Two Nearly Identical Instances Generate Two
  Different Execution Plans?


Because, by your admission, they are not identical. Most likely explanation for the different execution plans is a variance in statistics.


  Table rows counts are slightly larger on Server A... Statistics are
  updated nightly at the same time on both servers.


Row counts are different and the statistics update was probably a default sample, rather than FULLSCAN. I've witnessed some comically unfortunate stats histograms as the result of sampling, each of which has been corrected by a FULLSCAN update.