I do understand that a lookup tagger is one of the simplest ones to implement as it is able to map each word a single POS. Why shouldn't we use it compared to bigram tagger?
Simply put, they're just not as good. Lookup taggers can't deal with the fact that words can have multiple parts of speech: look at "project" in English, which can be a verb or a noun. A lookup tagger can't distinguish between those two and will always choose whichever was most common in its training corpus.
N-gram taggers try to deal with this problem by adding context. But they quickly run into the Combinatorial Explosion: given all the possible ways words can be combined, it's easy to find N-grams in the wild that never appeared in the training corpus. So N-gram taggers tend to fall back to smaller and smaller values of N if they can't find the whole thing, eventually resorting to N=1: a lookup tagger.