Modifying target vocabulary when migrating taxonomy terms with migrate_d2d
After poking around some more, I found my answer in this issue and the Migrate module documentation.  Based on what I found there, this is what I came up with:

/**
 * Override of DrupalTerm6Migration. Only for People and Organizations vocabulary
 * since we need to split terms out to two new vocabularies.
 */
class NBPeopleOrganizationsTermMigration extends DrupalTerm6Migration {
  public function __construct(array $arguments) {
    parent::__construct($arguments);

    // Set field mapping for destination vocabulary, since we need to
    // set it on a row by row basis.
    $this-&gt;addFieldMapping('vocabulary_machine_name', 'vname');
  }


  /**
   * Implementation of Migration::prepareRow().
   *
   * Need to redirect terms into either Journalists or Non-Journalists vocabularies
   * based on whether term is listed in nb_migrate_journalists table.
   *
   * @param $row
   */
  public function prepareRow($row) {
    if (parent::prepareRow($row) === FALSE) {
      return FALSE;
    }
    // Create journalists array from nb_migrate_journalists table.
    static $journalists = array();
    if (!$journalists) {
      $sql = "SELECT * FROM nb_migrate_journalists";
      $result = db_query($sql);
      foreach ($result as $record) {
        $journalists[] = $record-&gt;tid;
      }
    }

    // Set value for name (mapped in constructor above) based on presence in $journalists array.
    $row-&gt;vname = in_array($row-&gt;tid, $journalists) ? 'journalists' : 'non_journalists';
  }
} 


Basically it just creates a mapping between the destination vocabulary machine name and the vname variable, which is then populated in the prepareRow() method.