Olá Lucas!
Neste caso, o resultado será cada letra do nome "Paulo" em uma linha embaixo da outra.
P
a
u
l
o
Em Ruby não existe tipos primitivos. Tudo é um objeto, inclusive a string "Paulo".
Neste caso, o loop for está varrendo as posições do objeto nome, tanto que ao tentar adicionar a posição [5] como em um array irá compilar um erro:
nome[5] = "0"
Retornará:
NoMethodError: undefined method `[]=' for "Paulo"
Já, no caso a seguir, o resultado é o mesmo, porém, a variável nome, que só agora se trata de um array, poderá ter valores acrescidos com as posições dos colchetes [], como no exemplo abaixo:
nome = ["P","a","u","l","o"]
nome[5] = "o"
for i in 0..nome.size-1
puts nome[i]
end