Keith has both a higher GB% and pull% than Canha. Canha is hitting more GB than he normally does so far, but for his career he hits less GB than the MLB average.
Keith also has a .444 OPS on the season.
Also, you absolutely want one of your 3 best hitters in the #2 spot.
Really what's happening is Canha had one bad AB where he GIDP in extra innings against the Mets and you're basing everything upon that one AB and burying your head in the sand and ignoring all the evidence that shows your take and opinions are blatantly incorrect. Literally all the things you say Canha lacks for the #2 spot are legitimate strengths of his game.