The problem is the actual animation used for the transition. You can solve this problem by adjusting the time (and attenuation) of the animation when you click on navCtrl. You do this by providing an optional option object as the last parameter.
this.navCtrl.push('MyPage', null, { duration: 200, easing: 'cubic-bezier(0.36,0.66,0.9,1)' });
Explanation follows ...
The initial animation setting is 500 ms, which is too long. However, the actual visual animation doesn’t really look so long, because the cubic bezier curve in the original animation is very flat in the last 200-300 ms (as can be seen in the picture below). 
That is why it is also necessary to change the attenuation.
Original: Bezier cube (0.36.0.66, 0.04 , 1) Changed: cubic Bezier (0.36.0.66, 0.9 , 1)
For the application to be fast when navigating back, you need to add the same animation when the back button is pressed in the view. This can be done by overriding the behavior of the NavBar feedback button.
So add this to your page component
@ViewChild(Navbar) navBar: Navbar; ionViewDidLoad() { this.setBackButtonAction() } //Method that overrides the default back button action setBackButtonAction() { this.navBar.backButtonClick = () => { this.navCtrl.pop({ duration: 200, easing: 'cubic-bezier(0.36,0.66,0.9,1)' }); } }
For someone building a source (or wanting to provide a pull request for the Ionic team). The initial values are set in ios-transition.ts and must be changed there
const DURATION = 500; const EASING = 'cubic-bezier(0.36,0.66,0.04,1)';
EDIT: I sent a request to output the Ionic command https://github.com/ionic-team/ionic/pull/13029