Perhaps he is a tomcat...
The grammatical gender of "собака" is feminine. You can't say "любимый собака".
There are other examples when the grammatical gender of the noun does not match the actual gender of the person or animal. Она хороший врач (She is a good doctor): врач is masculine.
You told me in an earlier question that I couldn't say "Том — моя кошка" (and, indeed, Duolingo marked this as wrong) because кошка is feminine while Tom is a male name.
Why are you allowed to say "Тим — моя любимая собака" here then?
Tough question! I'd just say that "пёс" for a male dog is not as common as "кот" for a female cat.
Actually, as a native speaker, I'd hardly say "Тим - моя любимая собака" or "Тим - мой любимый пёс". I'd rather say "Тим - мой любимец" (Tim is my favorite/loved one), "Больше всего я люблю Тима" (I love Tim most), etc. With the cat named Tom, I don't feel inclined to use other phrasing. "Мой кот" sounds 100% ok.
You can probably use кобель if you need it very specific, you can tell that your dog is мальчик (a boy). There is masculine «пёс», which is a native Slavic word for "dog", but still, the name of the species is собака and it's feminine.
"Собака" is used about a male dog too. The word can mean any dog. And if you want to say about the male dog there is a word "пёс" . "Пёс" is more friendly than "кобель"
In reply to AnCatDubh: Yes, they wouldn't accept the equally weird, 'Tim is my favourite bitch.'
имя моя собака - "Baby Dog" . ему десять лет. Plese feel free to correct my poor attempt at typing russian to show that sometimes a name does not match the "character" .... a 10 year old malamute with the name "Baby Dog" ))))))
Couldnt this be 'demonstrative' in English, i.e. "Tim, my dog" as if Tim was being introduced?
Для меня как русскоязычного, странно звучит "Тим - собака". Предложение должно быть "Тим - мой любимый пёс".
I thought favorite / prefered would be : самая любимоя. I'm now confused if everything I like has to be my favorite
i got refused том- моя любимая кошка, probably because Tom is a masculine name and so calling for кот. Right after, Duolinguo is proposing to translate тим - моя любимая собака. if you are consistent, that should be wrong too as Tim is a masculine and would call for пёс. If you consider the specie in general, as Russian is more incline to use the feminine version кошка and собака, then both shoukd be accepted.