Programming is like riding a bike. It takes time to get on the bike, to get momentum going. Interruptions are like someone hitting you with a stick while you ride. Getting hit, falling off, and climbing back on the bike takes a lot of effort, and you have to rebuild your momentum each time it happens. The more times you're knocked off in a day, the more tired you get of climbing back on. Rebuilding the momentum when…
A similar one I have heard before is "It's like falling asleep... It takes a while to get into sleep mode and if someone interrupts you, you have to start the process again." Most people can understand how annoying it would be to be interrupted all night and not get a good night sleep.
Though riding a bike makes programming sound more active than sleeping, which is good.