As user2250152 stated, you need to "create" the role first before you can get the directory role.
This fixed it for me:
DirectoryRole globalReaderRole;
if (result.Value.Count == 0)
{
globalReaderRole = await graphServiceClient.DirectoryRoles.PostAsync(new DirectoryRole
{
RoleTemplateId = tmplRole.Id
});
}
else
{
globalReaderRole = result.Value.FirstOrDefault();
}