Las cláusulas aquí se aplican desde la primera consulta configurada en union()
método, así que simplemente invierta dónde los está colocando:
$query1 = DB::select('p.name')
->from(array('person', 'p'))
->where('p.organization', 'LIKE', 'foo%')
->group_by('name')
->order_by('name')
->limit(10);
$names = DB::select('sh.name')
->union($query1, FALSE)
->from(array('stakeholder', 'sh'))
->where('sh.organization', 'LIKE', 'foo%')
->execute()
->as_array();
También puede eliminar ese ->limit(10)
superfluo de $names
ya que será ignorado y reemplazado por el de $query1
.