Все решения до сих пор игнорируют тот факт, что второй массив также может иметь элементы, которых нет в первом массиве. Чак указал на исправление (см. Комментарии к другим записям), но есть более элегантное решение, если вы работаете с наборами:
require 'set'
teamOne = "Billy, Frankie, Stevie, John"
teamTwo = "Billy, Frankie, Stevie, Zach"
teamOneSet = teamOne.split(', ').to_set
teamTwoSet = teamTwo.split(', ').to_set
teamOneSet ^ teamTwoSet # => #<Set: {"John", "Zach"}>
Этот набор может быть преобразован обратно в массив, если это необходимо.