Опустить:
destination_array = Array.new(5) { Array.new(10, 0) }
И вместо этого используйте:
destination_array = source_array.map { |subarray| subarray.map { |item| item.nil? ? 0 : 1 } }
Это даст вам то, что вы хотите.
Ключ в том, чтобы позволить итерационной функции Array#map
выполнить работу за вас, чтобы вам не приходилось беспокоиться об индексах. Это будет работать для любого 2-мерного массива, где вы хотите одинаковые размеры для входных и выходных массивов.