Pytanie padło już na Stack Overflow, odpowiedź jest raczej wyczerpująca, łącznie z bytecode'em do którego obie wersje się kompilują. Link do odpowiedzi:
http://stackoverflow.com/a/6407222
Guido van Rossum nawet rozwarzał wyrzucenie map(), reduce(), filter() z python'a 3:
http://www.artima.com/weblogs/viewpost.jsp?thread=98196
Osobiste preferencje: zazwyczaj list comprehensions, map() używam kiedy mam już gotową funkcje której chcę użyć bądź wydaje mi się to bardziej przejrzyste w użyciu.