esbarrou no mesmo problema e encontrou uma maneira de contornar esse comportamento inesperado:
aws ec2 create-tags --resource $someResource --tags Key=mykey,Value='"{\"json\":\"value\"}"'
Um pouco atrasado, talvez, mas alguém pode achar útil. A questão é que o awscli parece tentar analisar o que está dentro das aspas para uma variável, e se não for um padrão para uma string, isso dará um erro. Portanto, dentro das aspas, outro conjunto de citações precisa ser usado, de modo que seja padronizado para uma string.