MS Project is calculating correctly. A 2-day duration task will start at 20/3/2019 9:00 and finish at 21/3/2019 at 17:00 (or whatever the calendar states as the end of the working day).
This is expected behavior of MS Project.
If you add a successor task, it will start at 22/3/2019 (given that the predecessor task concludes at the end of the day, so there is not remaining time to start the next task the same day).
However, if you want to force the task to end at 22/3/2019, you can trick MS Project by defining the task’s start date as “20/3/2019, 10:00 am” (yes, including the start time – use the time format according to your locale). This way, the task will start at 20/3/2019, 10:00 am, and finish at 22/3/2019, 10:00 am. Then, any successor task will start at 22/3/2019, 10:00 am. Note, however, that this could cause some confusion with team members or other project stakeholders.
Greetings.