Airlines when making schedules they take into account extra time for push back, taxi out, taxiing, taxi in and parking. The block time you see at the ticket is the time of the flight plus these things, while the actual flying time which you hear during the welcome announcement in the aircraft is purely the flying time.
In addition to that, airports are enhancing a lot in the past few years along with the airlines. Boarding times are much much less now, self check in and online check in made things much quicker as well, giving airlines more slots and less manpower required for the same job, wide bodied airplanes used to take 45 minutes for boarding, now you see them finish in ~25 minutes, once boarding is done plane will take off! This is added to the saved time. Also parking the plane itself is much more easier for pilots now, everything is done almost automatically, no need for marshallers (the guys that hold lights and guide planes) to guide the plane to the right spot, there are automated lights now and systems to help planes.
Bottom line, many factors have enhanced a lot while methods used to calculate times for flights have not, this made things seem faster. Finally, there are serious penalties from airports and IATA itself for delays, airlines are getting better in avoiding them.