Точного документально подтвержденного ответа нет, но есть несколько версий, из которых одна более убедительна.
Наиболее правдоподобная: советские программисты в 1970-80-е работали с ранними ЭВМ и видели этот символ в ASCII-таблицах задолго до появления электронной почты. Говорят, что хвост символа, закрученный вокруг тела, напомнил кому то свернувшуюся собаку. Но это уже народная этимология - красивая, но недоказуемая.
Вторая версия: связь с компьютерной игрой Adventure (Advent), которая была широко распространена на советских машинах в адаптированных версиях. Там символ @ обозначал игрока на карте.
Третья: просто фонетическое ощущение. "Собачка" - уменьшительное, ласковое. Советские программисты любили давать технике человечные прозвища. Те же "железо", "машина", "дурочка" для глючащего ПО.
Лингвистически интересно, что в большинстве языков метафора идет через форму символа (улитка, обезьяний хвост), а в русском - через что то другое. Возможно через звук или поведение.
Про Adventure не слышала! Это отдельная интересная нить для изучения.