Está certo - quando você criptografa algo, ele é tratado como uma matriz de bytes e é retornado como tal. 0x47 é G, 72 é r etc.
Se você examinar a documentação para DecryptByAsmKey você notará que o tipo de retorno é varbinary com um tamanho máximo de 8.000 bytes. Você também notará a conversão no exemplo.
Então, se você está criptografando e descriptografando strings, você deve converter assim
SELECT CONVERT(varchar(max),DECRYPTBYASYMKEY(ASYMKEY_ID('myasymkey'),
EncryptByAsymKey(AsymKey_ID('myasymkey'),
'Greg'),
N'123pass!'));
Observe também que você precisa ter certeza de que está convertendo para varchar(max) ou nvarchar(max) dependendo da sua entrada. Se você tentou
SELECT CONVERT(nvarchar(max),DECRYPTBYASYMKEY(ASYMKEY_ID('myasymkey'),
EncryptByAsymKey(AsymKey_ID('myasymkey'),
'Greg'),
N'123pass!'));
seria errado, pois sua entrada de 'Greg' é um varchar.