They are both correct. I am not very good an explaining English grammar even though I am a native speaker, but they both sound right and natural to me. However, I would naturally say "Which one do you like better, fish or birds?" You can add "one" in both examples or remove it in both examples and it is still correct. I think the most natural form (in my opinion, at least" is "Which one do you like better?" "One" adds a level of specificity, since we are talking about fish and birds in specific. "Which one do you prefer" is not something I would normally use when asking someone about an animal, though. "Which one do you prefer" seems to me like it would refer to clothes, or food. For example, "Which one do you prefer, the black shirt, or the red shirt?" or "Which one do you prefer, ranch dressing or Italian dressing?"
I hoped I helped a little bit!