Can anyone tell me the reason and solution?
(possible) reasons:
R1) your domain name is branded / generic (therefore, unoptimized, or not fully optimized for the main keyword), while the inner page contains the keyword in URL / title of the page, therefore getting preferential treatment from google
R2) your homepage lacks enough content and - when combined with inadequate / incomplete optimization - the inner page outranks it because it has more content and / or better optimization
R3) your homepage doesn't have enough authority (DR / DA theoretically, but good backlinks pointing to it, realistically) to be able to outrank the inner page that might have better / some links pointing to it, and might also have more / better content that's also better optimized for the keyword
R4) your homepage doesn't contain the main keyword anywhere on the page, or - if the homepage has plenty of content - the main keyword is not mentioned sufficient times inside of that content
(possible) solutions:
S1) for reason
R1... decide which page (the homepage, or the inner page) you wish to rank for the keyword that the inner page currently ranks for, and optimize the content of the homepage / inner page for that keyword (put the keyword in title, in 1st paragraph, in ALT tag image, and sprinkle it throughout the rest of the content naturally... also use software like Rank Mat, Yoast, SurferSEO, or Frase.io to further optimize the content with the right SEO entities / LSI terms)
S2) for reason
R2... add more content to the homepage, and also optimize the content for the main keyword, by mentioning it in meta tags (title and description mostly), but also inside of the content. Also point a few internal links from relevant pages on your website, to the homepage, with exact / partial match anchors
S3) for reason
R3... get more backlinks, both external and internal, and use exact match anchors on 5-10% of those backlinks (while still adding more content to the homepage if necessary and / or optimizing it for the main keyword if it's not already optimized for it)
S4) for reason
R4... if your homepage doesn't have enough content, add more content so you can add the keyword more times into the content, and if the homepage does have enough content but the keyword is not mentioned enough times in that content then simply mention it more times (but this might still not be enough, especially if you're in a tough niche, which means that you might still need backlinks)
Apart from these, other things that could be reasons that I can think of, are...
- your homepage is not yet indexed in google
- your homepage is slow and / or not mobile-friendly (yes, I know that google have just said that site speed and mobile friendliness are not ranking factors anymore, but when have google last spoke the truth?)
If everything fails, maybe you need to canonicalize the homepage FWIW