Well if it isn't Jojo :3
Anyhow no Pokemon's level of evolution has been postponed or done earlier, including Marrill. Marrill has always evolved at lv.18 and will probably still evolve at lv.18 in the future. If you have faced this then the following reasons should inlighten you :3
The main possibilities
- You are using a ROM and your ROM is acting up (ROMS tend to contain a lot of bugs, js)
- Marrill reached lv.20 during battle and then evolved
- You had mistaken Azurill for Marrill. Your Azurrill hasn't reached max happiness and has therefore not evolved into Marril which means no Azumarrill
- Your safe file my contain minor bugs
This is all I can think of right now
I have had various sources including Serebii, however I can't post any sources because I am using my 3DS right now ¬.¬.
Hope this was of any use to you :3