I have two sources for the Shanghainese pronunciation of "無" (leaving colloquial pronunciation aside); one says the initial is /v/ while the other /ɦ/. I found the same differences in some characters like "武" and "巫". Why is that? Is it just a regional difference?
The /ɦ~β~v/ phoneme in Shanghainese Wu (and its voiceless counterpart, /h~ɸ~f/) is particularly well known for its mix of diachronic and synchronic variation. The variation is not at all free variation, and the way these phonemes are pronounced is indicative of a whole range of factors.
無 I would say is rather rare as a literary character, since its colloquial variant (often written 嘸沒 in Shanghainese) has such a higher frequency. However, that wouldn't exclude it from use in such set idioms as 無與倫比, and even such important cities to the Wu-speaking region as 無錫 Wuxi in southern Jiangsu.
However, in front of rounded front vowels like /u~ʋʷ/ and /y/, e.g. with 武 and 巫 and 無, in some 'varieties' of Shanghainese, /v/ shifts towards /ɦ/. This what wugniu.com reports for Shanghainese, but not wu-chinese.com. Note that for Suzhounese, both websites show the more conservative /v/ for all three characters.
Which varieties then? Chen & Gussenhoven (2015) did a phonological survey for the IPA, which states in a footnote:
Some speakers of Shanghai Chinese, especially the old-generation speakers, have the bilabial fricatives /ɸ/ and /β/ instead of the labial-dental fricatives /f/ and /v/.
But there is no indication of any phonotactic rules for for the bilabial vs the labiodental, much less any delabialisation.
Qian & Shen (1991) mention data from Chao Yuen Ren's The Study of Modern Wu Dialect, on what is termed "second-period Shanghai dialect (1927-1949)", stating:
The old group confuse h(u) with f, w with v and 王 'king' = 房 'house'. The new group rarely confuses them.
According to Chao's table, 府, 武, 无 were pronounced as /β/ whereas 蚊, 问, 尾 as /ɦɯɔ/ by the old group. The new group pronounced them all as /v/. Today in the suburban area of Shanghai (including the town of Songjiang), middle-aged and young people have completed this change.
Furthermore, there is an indication that 曉 initials (Middle Chinese /h/) had started to merge with these bilabials, e.g. with 灰, and in the 1950s and 1960s, these were all normalised to h(u) under the influence of Standard Mandarin. But, according to this account:
[The] old phenomenon reoccurred in the 1970s. Young people pronounced f and v for h(u) and ɦ(u) before the 'u' final. For example 夫 was the same as 呼 fu and 扶 was the same as 胡 vu (but when occurred before glide u, h was pronounced as hu).
The study mentions what suburban districts and other cities in the Northern Wu-speaking region across Jiangsu and Zhejiang this merger-and-hypercorrection occurred, at least in the late 1980s and early 1990s.
Fast forward about thirty years, including a reported loss of /v/ conditioned by Standard Mandarin from Gu (2007), and this is how one 10後 Shanghainese child on YouTube in the early 2020s says 武威路 in his native Shanghainese variety.
1, 吳語學堂, not 吳語學當
2, 吳語小字典 offers the romanization form. 吳語學堂 offers IPA. You can't directly compare the two. You need to click the link on the sidebar of 吳語小字典 to see which symbol represent which sound in its romanization system. (However, even that link does not provide IPA, so you have to know Wu first to fully understand its romanization system.)