A solução é prestar atenção ao /etc/fstab em sua geração, pois genfstab não adiciona entradas para /boot e /boot/efi e deve ser feito manualmente.
Após chroot , devemos montar novamente não apenas o ESP, mas também a partição /boot . Então, grub-install funcionará.
Atualização: A montagem /boot e o ESP devem realmente ser feitos DEPOIS de montar o sistema de arquivos raiz em /mnt , ou seja,
# format the ESP
mkfs.fat -F32 /dev/sda1
# set up LUKS for the boot partition
cryptsetup luksFormat /dev/sda2
cryptsetup open /dev/sda2 cryptoboot
mkfs.ext2 /dev/mapper/cryptoboot
# same for the root partition
cryptsetup luksFormat /dev/sda3
cryptsetup open /dev/sda3 cryptosystem
mkfs.f2fs /dev/mapper/cryptosystem
# mount root, and only then, mount /boot and the ESP, in that order
mount /dev/mapper/cryptosystem /mnt
mkdir /mnt/boot
mount /dev/mapper/cryptoboot /mnt/boot
mkdir /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
# edit "/etc/pacman.d/mirrorlist", then continue with pacstrap etc
É uma questão de lógica. Se fizermos as coisas nessa ordem, genfstab irá gerar entradas corretamente para todas as partições e tudo vai funcionar bem.