Seu problema é causado por peculiaridades do Btrfs. Como ele suporta subvolumes, geralmente é necessário especificar opções incomuns para obter o rEFInd para verificar o subdiretório correto e fazer com que o kernel reconheça o local correto como raiz.
Para obter o rEFInd para verificar os kernels, você deve adicionar a seguinte linha a refind.conf :
also_scan_dirs +,@/boot
Isso pressupõe que você não tenha uma partição /boot separada. (Meu palpite é que seria +,@ se você tivesse essa partição, mas eu nunca tentei isso.) Se isso não funcionar, você poderia abrir um shell EFI e usá-lo para tentar encontrar seus kernels, então adicione qualquer que seja a localização deles de maneira semelhante. Isso pode não ser necessário no Arch porque o Arch e o Ubuntu podem configurar seus volumes do Btrfs de maneiras diferentes.
Com essa mudança, o rEFInd deve detectar seus kernels, mas a tentativa de inicializá-los falhará. Esse problema pode ser superado fazendo alterações em seu arquivo /boot/refind_linux.conf . Em particular, você deve adicionar o seguinte às opções de inicialização:
rootflags=subvol=@
Lembre-se de adicionar ao normal root={whatever} e qualquer outra opção do kernel que você usar.
Além disso, verifique se o driver EFI para o Btrfs está presente no subdiretório rEFInd drivers ou drivers_x64 . Eu percebi que você mencionou que os drivers estão instalados, mas não ficou 100% claro que você quis dizer o driver EFI, então eu quero deixar isso explícito.

