First, Vader didn't even know he had a son, so there was no reason for him to even look.
Second, Anakin couldn't wait to get off Tatooine, and there was no reason for him to return.
While it was a time with his Mother, it was also where she died and a place where he was a slave, with someone telling him what to do all the time, which is not something a Sith Lord will want to remember.
So Tatooine is probably
the one planet Vader would never want to return to.
Third, Obi-Wan was close to Anakin and good friends with him, so he likely wanted to let Anakin's name pass on to another generation.
Fourth, he's staying with his aunt and uncle.
While they don't have the Skywalker name, as relatives (it's never given exactly how close, since uncle and aunt are sometimes vague terms), it wouldn't be too out of place for them to be raising a Skywalker child.
Fifth, sometimes the best place to hide something is in plain sight.
It clearly worked, since Vader was not aware of him until after Luke blew up the Deathstar and Vader became obsessed with finding "Young Skywalker."
scifi.stackexchange.com/users/1693/Tango
This answer is pretty much conjecture, and dips out of G-Canon, but: The Emperor had the power to foretell the future (although, whether entirely accurately or not is up for debate).
The Sith have a tradition where, either the apprentice kills the master and takes on a new apprentice, or the master engineers the failure and death of the apprentice and replaces them.
It is entirely possible that the Emperor did know about the Skywalker children, but kept them a secret from Vader as some long-term gambit to force a Sith succession (which the scenes in the Death Star Throne Room can be interpreted as).
scifi.stackexchange.com/users/373/HorusKol
In fact, this worked very well, as Luke remained hidden from Vader and the Emperor until his protector decided to reveal him.
Even after that, It took time for them to realize Luke's lineage.
As I explain here , they where not searching for him because they thought Amidala died before giving birth.
Even after the first death star's destruction, the emperor didn't realize Luke was Anakin's son before he started his training with Yoda.
scifi.stackexchange.com/users/45/DavRob60
According to Leland Chee in Star Wars Insider Issue 115, it was Owen and Beru's decision to keep his last name in order to honor Shmi Skywalker.
He suggests that either Skywalker was a fairly common name, or that no one made the connection between the Luke and Anakin.
scifi.stackexchange.com/users/51226/Rogue Jedi
At best I'd say this is a plot hole and any attempts to explain it are just good tries at ret-conning what we know about how the OT turns out (i.e. Luke and Kenobi were never found) into the story.
Worse, the blame seems to be placed squarely on the prequels.
Luke's dad is discussed in the OT--and they may mention his first name--but I'm pretty sure Anakin Skywalker made its debut in the prequels.
Meaning Skywalker could have been Luke's ingognito name until Lucas ruined it.
(Vader says Skywalker, but only after he knows Luke's real parentage, so any name he went by would have been said with gravity.)
Same with Tatooine.
We don't know Anakin is from there until TPM.
Lars and Veru could have been moved there in hiding and ANH the first time we ever hear about it.
Lastly, even Obi-Wan could have been explained by a better plot for the prequels.
Obviously Vader knows him by that name, based on their chat before the duel on the Death Star, but if RoTS would have ended with Vader thinking Obi-Wan was dead, then him going by Old Ben on some random planet on the Rim would have been plenty low key.
scifi.stackexchange.com/users/2187/Adam Wuerl
From what I have heard originally while the original movie was filmed it was not Lucas' intent to have Darth Vader be Anakin Skywalker so that explains why Luke would have gone by his true last name...
scifi.stackexchange.com/users/57056/user57056
It was a perfect ruse if you think about it.
As the accepted answer already mentioned the bad memories meant that vader would not go voluntarily to tatooine and if he did he would not stay for long.
And with so many planets in the galaxy a similar name would not be that much out of order.
Now in the new canon (the comics)
Vader even had met luke personally fighting the young yedi after the death stars destruction and cleaning the floor with him.
He still was intrigued enough by him to send a bounty hunter after him.
And only when the puzzle parts fell into place......ben kenobi training luke, giving him anakins old light saber AND luke being from Tatooine and a jedi AND having the Skywalker name.....
only then vader understood the ruse that happened and that he had a son.
Thus hiding luke right in the open was the most sure way for people to overlook him (especially as nobody had searched for him or was aware that he was force sensitive).
scifi.stackexchange.com/users/38245/Thomas
Seems no one thought of perhaps the obvious possibility, that Skywalker may not be so unique of a name?
We are talking about a populations the size of a galaxy after all.
scifi.stackexchange.com/users/42218/Escoce
To add to the best answer above, Skywalker may very well have been a slave name or a bastard name on Tatooine or even in that part of the Galaxy.
I personally like this because it concludes that twice a Skywalker (slave/bastard) goes on to become the most powerful individual in the Galaxy.
For me the only plot hole is that Vader never once noticed in 20 years that his "family" Mr. and Mrs. Lars were raising a Skywalker.
scifi.stackexchange.com/users/58090/X69
Obi-Wan and Yoda didn't really make a good effort at hiding him, especially considering they let Vader's family adopt him.
If Obi-Wan and Yoda were trying to keep Luke safe from Vader, why would they let him keep the Skywalker name?
scifi.stackexchange.com
<star-wars>
scifi.stackexchange.com/questions/8961
scifi.stackexchange.com/users/1749/Sunny Boy
Vader didn't even know he had a son, so there was no reason for him to even look for Luke.  Also, Anakin couldn't wait to leave Tatooine, and there was no reason for him to return.  Obi-Wan was close to Anakin, so he probably wanted to let Anakin's name pass on to another generation. There are a few fan based specualtions as to why Yoda and Obi-Wan didn't change Luke's name such as; Vader was unaware he had a son, they wanted to honour Aanikins name etc. Real world information states that Aanikin was not originally intended to be vader and in Issue 115, it was Owen and Beru's decision to keep his last name in order to honor Shmi Skywalker.
Vader had no reason to return to tatooine and he also had no idea he had a son. Finally Obi-Wan was close to Anakin and likely wanted to let his name pass on to the next generation. There are external sources that give off two difinitive reasons. 1. According to Leland Chee in  Star Wars Insider  Issue 115, it was Owen and Beru's decision to keep his last name in order to honor Shmi Skywalker and 2. while the original movie was filmed it was not Lucas' intent to have Darth Vader be Anakin Skywalker so that explains why Luke would have gone by his true last name.