I'm still on a low-mid Trainer Level (lvl 20), have been reading a lot of posts lately, one is about the move sets. I usually read, people say that moves can be learnt on certain factors like when evolving them. I have these max evolve and wonder, is it possible for a pokemon to have more than 2 moves? If not can it have 2 special moves?
By default, all Pokemon have one fast move (no energy required) and one charge move (stronger, energy required) at a time. As of late 2018, it is possible to have a second charge move, giving the Pokemon a total of three moves. It can be unlocked by paying stardust and candy. The required stardust and candy costs are listed on The Silph Road website.
Only a few Pokemon cannot unlock a second charge move and are hence limited to two moves. These are because the Pokemon can only learn one charge move, such as Ditto. Some Pokemon like Magikarp are limited to one charge move unless they are Shadow or Purified Pokemon, in which case they can be taught a new charge move if they still know Frustration or Return i.e. Magikarp can know Splash, Frustration/Return, and Struggle.
Currently the moves are restricted to 2 moves, 1 "normal" attack, and 1 "special" attack. These moves are chosen randomly, and there is currently no way of choosing/teaching your Pokemon moves.
EDIT As of 2018, you can now "purchase" a second Special Move for your Pokemon (See MBorg's Answer).